Fix for KT-15447: Compiler backend error: "Don't know how to generate outer expression for class"

#KT-15447 Fixed
This commit is contained in:
Mikhael Bogdanov
2016-12-28 17:52:07 +01:00
parent 2566a7a25e
commit e775cc697e
7 changed files with 39 additions and 4 deletions
@@ -340,11 +340,7 @@ class CodegenAnnotatingVisitor extends KtVisitorVoid {
closure.setCaptureReceiverType(receiverType);
}
classStack.push(classDescriptor);
nameStack.push(name);
super.visitCallableReferenceExpression(expression);
nameStack.pop();
classStack.pop();
}
@NotNull
@@ -0,0 +1,12 @@
//WITH_RUNTIME
fun box(): String {
var methodVar = "OK"
fun localMethod() : String
{
return lazy { methodVar }::value.get()
}
return localMethod()
}
@@ -0,0 +1,3 @@
public final class Kt15447Kt {
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
}
@@ -2086,6 +2086,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
doTest(fileName);
}
@TestMetadata("kt15447.kt")
public void testKt15447() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/callableReference/property/kt15447.kt");
doTest(fileName);
}
@TestMetadata("kt6870_privatePropertyReference.kt")
public void testKt6870_privatePropertyReference() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/callableReference/property/kt6870_privatePropertyReference.kt");
@@ -2086,6 +2086,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
doTest(fileName);
}
@TestMetadata("kt15447.kt")
public void testKt15447() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/callableReference/property/kt15447.kt");
doTest(fileName);
}
@TestMetadata("kt6870_privatePropertyReference.kt")
public void testKt6870_privatePropertyReference() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/callableReference/property/kt6870_privatePropertyReference.kt");
@@ -2086,6 +2086,12 @@ public class LightAnalysisModeCodegenTestGenerated extends AbstractLightAnalysis
doTest(fileName);
}
@TestMetadata("kt15447.kt")
public void testKt15447() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/callableReference/property/kt15447.kt");
doTest(fileName);
}
@TestMetadata("kt6870_privatePropertyReference.kt")
public void testKt6870_privatePropertyReference() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/callableReference/property/kt6870_privatePropertyReference.kt");
@@ -2549,6 +2549,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
doTest(fileName);
}
@TestMetadata("kt15447.kt")
public void testKt15447() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/callableReference/property/kt15447.kt");
doTest(fileName);
}
@TestMetadata("kt6870_privatePropertyReference.kt")
public void testKt6870_privatePropertyReference() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/callableReference/property/kt6870_privatePropertyReference.kt");