Fix for static - write NEED_SYNTHETIC flag on original descriptor

This commit is contained in:
Mikhael Bogdanov
2013-06-17 17:25:19 +04:00
parent 76d4dcef7f
commit 52ead7a350
3 changed files with 21 additions and 1 deletions
@@ -38,7 +38,7 @@ public class NeedSyntheticCallResolverExtension implements CallResolverExtension
ResolvedCallWithTrace<F> resolvedCall = results.getResultingCall();
CallableDescriptor targetDescriptor = resolvedCall.getResultingDescriptor();
if (needSyntheticAccessor(context.scope, targetDescriptor)) {
context.trace.record(NEED_SYNTHETIC_ACCESSOR, (CallableMemberDescriptor) targetDescriptor, Boolean.TRUE);
context.trace.record(NEED_SYNTHETIC_ACCESSOR, (CallableMemberDescriptor) targetDescriptor.getOriginal(), Boolean.TRUE);
}
}
}
@@ -0,0 +1,15 @@
class C() {
class object {
private fun <T> create() = C()
}
class ZZZ {
val c = C.create<String>()
}
}
fun box(): String {
C.ZZZ().c
return "OK"
}
@@ -680,6 +680,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
doTest("compiler/testData/codegen/box/classes/classObjectNotOfEnum.kt");
}
@TestMetadata("classObjectWithPrivateGenericMember.kt")
public void testClassObjectWithPrivateGenericMember() throws Exception {
doTest("compiler/testData/codegen/box/classes/classObjectWithPrivateGenericMember.kt");
}
@TestMetadata("classObjectsWithParentClasses.kt")
public void testClassObjectsWithParentClasses() throws Exception {
doTest("compiler/testData/codegen/box/classes/classObjectsWithParentClasses.kt");