From 52ead7a35002886f4daf4281c539d7b69f6e50e9 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Mon, 17 Jun 2013 17:25:19 +0400 Subject: [PATCH] Fix for static - write NEED_SYNTHETIC flag on original descriptor --- .../calls/NeedSyntheticCallResolverExtension.java | 2 +- .../classObjectWithPrivateGenericMember.kt | 15 +++++++++++++++ .../generated/BlackBoxCodegenTestGenerated.java | 5 +++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/codegen/box/classes/classObjectWithPrivateGenericMember.kt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/NeedSyntheticCallResolverExtension.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/NeedSyntheticCallResolverExtension.java index bebcce131aa..4fe67020909 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/NeedSyntheticCallResolverExtension.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/NeedSyntheticCallResolverExtension.java @@ -38,7 +38,7 @@ public class NeedSyntheticCallResolverExtension implements CallResolverExtension ResolvedCallWithTrace 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); } } } diff --git a/compiler/testData/codegen/box/classes/classObjectWithPrivateGenericMember.kt b/compiler/testData/codegen/box/classes/classObjectWithPrivateGenericMember.kt new file mode 100644 index 00000000000..3e10c304bf0 --- /dev/null +++ b/compiler/testData/codegen/box/classes/classObjectWithPrivateGenericMember.kt @@ -0,0 +1,15 @@ +class C() { + class object { + private fun create() = C() + } + + class ZZZ { + val c = C.create() + } +} + +fun box(): String { + C.ZZZ().c + return "OK" +} + diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java index 2d1b4df5978..47093a14d48 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -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");