Support codegen of empty do-while-loop

#KT-3009 In Progress
This commit is contained in:
Alexander Udalov
2013-12-02 20:48:15 +04:00
parent 9058272528
commit 61ff9eb45b
3 changed files with 19 additions and 2 deletions
@@ -465,7 +465,10 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
conditionValue = generateBlock(statements, true); conditionValue = generateBlock(statements, true);
} }
else { else {
gen(body, Type.VOID_TYPE); if (body != null) {
gen(body, Type.VOID_TYPE);
}
conditionValue = gen(condition); conditionValue = gen(condition);
} }
@@ -0,0 +1,9 @@
fun box(): String {
do while (false);
var x = 0
do while (x++<5);
if (x != 6) return "Fail: $x"
return "OK"
}
@@ -1427,6 +1427,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
doTest("compiler/testData/codegen/box/controlStructures/doWhileFib.kt"); doTest("compiler/testData/codegen/box/controlStructures/doWhileFib.kt");
} }
@TestMetadata("emptyDoWhile.kt")
public void testEmptyDoWhile() throws Exception {
doTest("compiler/testData/codegen/box/controlStructures/emptyDoWhile.kt");
}
@TestMetadata("emptyIf.kt") @TestMetadata("emptyIf.kt")
public void testEmptyIf() throws Exception { public void testEmptyIf() throws Exception {
doTest("compiler/testData/codegen/box/controlStructures/emptyIf.kt"); doTest("compiler/testData/codegen/box/controlStructures/emptyIf.kt");