Fix for finally before empty return

This commit is contained in:
Alexander Udalov
2012-11-22 16:53:37 +04:00
parent 99a908e8fe
commit ca587513e3
3 changed files with 20 additions and 0 deletions
@@ -1332,6 +1332,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
v.areturn(returnType);
}
else {
doFinallyOnReturn();
v.visitInsn(RETURN);
}
return StackValue.none();
@@ -0,0 +1,14 @@
var result = "Fail"
fun foo() {
try {
return
} finally {
result = "OK"
}
}
fun box(): String {
foo()
return result
}
@@ -469,4 +469,9 @@ public class ControlStructuresTest extends CodegenTestCase {
createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY);
blackBoxFile("controlStructures/conditionOfEmptyIf.kt");
}
public void testFinallyOnEmptyReturn() {
createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY);
blackBoxFile("controlStructures/finallyOnEmptyReturn.kt");
}
}