@Override public DataType visitWhile_stmt(@NotNull PythonParser.While_stmtContext ctx) { Label continueLabel = new Label(); Label breakLabel = new Label(); Label elseLabel = new Label(); scope.enterLoop(continueLabel, breakLabel); mv.visitLabel(continueLabel); visitTest(ctx.test()); // verifyType(visitExpression(ctx.expression()), PrimitiveType.BOOLEAN, ctx); mv.visitJumpInsn(IFEQ, elseLabel); visitSuite(ctx.suite(0)); mv.visitJumpInsn(GOTO, continueLabel); mv.visitLabel(elseLabel); if (ctx.suite(1) != null) visitSuite(ctx.suite(1)); mv.visitLabel(breakLabel); scope.exitLoop(); return null; }