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) {
|
||||
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);
|
||||
}
|
||||
|
||||
@TestMetadata("labeled.kt")
|
||||
public void testLabeled() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/statements/labeled.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("statementsComposition.kt")
|
||||
public void testStatementsComposition() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/statements/statementsComposition.kt");
|
||||
|
||||
Reference in New Issue
Block a user