Generate labeled statements as statements
This commit is contained in:
@@ -50,4 +50,11 @@ public class CodegenStatementVisitor extends JetVisitor<StackValue, StackValue>
|
|||||||
public StackValue visitBlockExpression(@NotNull JetBlockExpression expression, StackValue data) {
|
public StackValue visitBlockExpression(@NotNull JetBlockExpression expression, StackValue data) {
|
||||||
return codegen.generateBlock(expression, true);
|
return codegen.generateBlock(expression, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StackValue visitLabeledExpression(@NotNull JetLabeledExpression expression, StackValue receiver) {
|
||||||
|
JetExpression baseExpression = expression.getBaseExpression();
|
||||||
|
assert baseExpression != null : "Label expression should have base one: " + expression.getText();
|
||||||
|
return baseExpression.accept(this, receiver);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
fun main()
|
||||||
|
{
|
||||||
|
@l if (2 != 1) "fail 3"
|
||||||
|
}
|
||||||
|
|
||||||
|
// 0 GETSTATIC
|
||||||
@@ -353,6 +353,12 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("labeled.kt")
|
||||||
|
public void testLabeled() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/statements/labeled.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("statementsComposition.kt")
|
@TestMetadata("statementsComposition.kt")
|
||||||
public void testStatementsComposition() throws Exception {
|
public void testStatementsComposition() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/statements/statementsComposition.kt");
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/statements/statementsComposition.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user