From f1545963f3e32659c3a886d37cbe9595b4edfc0e Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Mon, 16 Jun 2014 22:51:42 +0400 Subject: [PATCH] Generate $propertyMetadata field in LIGHT_CLASSES mode --- .../jet/codegen/ImplementationBodyCodegen.java | 4 +--- .../src/org/jetbrains/jet/codegen/MemberCodegen.java | 2 ++ .../org/jetbrains/jet/codegen/PackagePartCodegen.java | 4 +--- .../specialNames/propertyMetadataCache.kt | 11 +++++++++++ .../jet/checkers/JetDiagnosticsTestGenerated.java | 5 +++++ 5 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/propertyMetadataCache.kt diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 493d42852ed..df1b6cc5342 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -467,9 +467,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { } private void generateDelegatedPropertyMetadataArray() { - if (state.getClassBuilderMode() == ClassBuilderMode.FULL) { - generatePropertyMetadataArrayFieldIfNeeded(classAsmType); - } + generatePropertyMetadataArrayFieldIfNeeded(classAsmType); } private boolean isGenericToArrayPresent() { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java index 5cbaac87e3d..7dc4acb416d 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java @@ -334,6 +334,8 @@ public abstract class MemberCodegen { @Override protected void generateSyntheticParts() { - if (state.getClassBuilderMode() == ClassBuilderMode.FULL) { - generatePropertyMetadataArrayFieldIfNeeded(packagePartType); - } + generatePropertyMetadataArrayFieldIfNeeded(packagePartType); } @Override diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/propertyMetadataCache.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/propertyMetadataCache.kt new file mode 100644 index 00000000000..8c33a0a3f77 --- /dev/null +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/propertyMetadataCache.kt @@ -0,0 +1,11 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER + +fun Any.get(x: Any?, y: Any): Any = null!! + +class C { + val x by 1 + val `$propertyMetadata`: Array = null!! +} + +val x by 1 +val `$propertyMetadata`: Array = null!! \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 169b434e2fe..db0f8ddca35 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -2865,6 +2865,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest("compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/instance.kt"); } + @TestMetadata("propertyMetadataCache.kt") + public void testPropertyMetadataCache() throws Exception { + doTest("compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/propertyMetadataCache.kt"); + } + } @TestMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl")