diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index b836161a907..03e7f873bed 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -408,10 +408,7 @@ public class ExpressionCodegen extends JetVisitor implem StackValue conditionValue = gen(expression.getCondition()); conditionValue.condJump(end, true, v); - JetExpression body = expression.getBody(); - if (body != null) { - gen(body, Type.VOID_TYPE); - } + generateLoopBody(expression.getBody()); v.goTo(condition); @@ -633,10 +630,7 @@ public class ExpressionCodegen extends JetVisitor implem protected abstract void increment(@NotNull Label loopExit); public void body() { - JetExpression body = forExpression.getBody(); - if (body != null) { - gen(body, Type.VOID_TYPE); - } + generateLoopBody(forExpression.getBody()); } private void scheduleLeaveVariable(Runnable runnable) { @@ -676,6 +670,12 @@ public class ExpressionCodegen extends JetVisitor implem } } + private void generateLoopBody(@Nullable JetExpression body) { + if (body != null) { + gen(body, Type.VOID_TYPE); + } + } + private class IteratorForLoopGenerator extends AbstractForLoopGenerator { private int iteratorVarIndex;