diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/PackagePartCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/PackagePartCodegen.java index 427ffd5b669..ed3144e527d 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/PackagePartCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/PackagePartCodegen.java @@ -55,6 +55,8 @@ public class PackagePartCodegen extends MemberCodegen { ArrayUtil.EMPTY_STRING_ARRAY ); v.visitSource(element.getName(), null); + + generatePropertyMetadataArrayFieldIfNeeded(packagePartType); } @Override @@ -75,11 +77,6 @@ public class PackagePartCodegen extends MemberCodegen { } } - @Override - protected void generateSyntheticParts() { - generatePropertyMetadataArrayFieldIfNeeded(packagePartType); - } - @Override protected void generateKotlinAnnotation() { writeKotlinSyntheticClassAnnotation(v, KotlinSyntheticClass.Kind.PACKAGE_PART); diff --git a/compiler/testData/codegen/box/delegatedProperty/accessTopLevelDelegatedPropertyInClinit.kt b/compiler/testData/codegen/box/delegatedProperty/accessTopLevelDelegatedPropertyInClinit.kt new file mode 100644 index 00000000000..26d5724a6e1 --- /dev/null +++ b/compiler/testData/codegen/box/delegatedProperty/accessTopLevelDelegatedPropertyInClinit.kt @@ -0,0 +1,13 @@ +// KT-5612 + +class Delegate { + public fun get(thisRef: Any?, prop: PropertyMetadata): String { + return "OK" + } +} + +val prop by Delegate() + +val a = prop + +fun box() = a diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java index 78066c76dd7..a9aee1f3866 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -1887,6 +1887,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { @TestMetadata("compiler/testData/codegen/box/delegatedProperty") public static class DelegatedProperty extends AbstractBlackBoxCodegenTest { + @TestMetadata("accessTopLevelDelegatedPropertyInClinit.kt") + public void testAccessTopLevelDelegatedPropertyInClinit() throws Exception { + doTest("compiler/testData/codegen/box/delegatedProperty/accessTopLevelDelegatedPropertyInClinit.kt"); + } + public void testAllFilesPresentInDelegatedProperty() throws Exception { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("compiler/testData/codegen/box/delegatedProperty"), Pattern.compile("^(.+)\\.kt$"), true); }