Generate $propertyMetadata field in LIGHT_CLASSES mode
This commit is contained in:
@@ -467,9 +467,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void generateDelegatedPropertyMetadataArray() {
|
private void generateDelegatedPropertyMetadataArray() {
|
||||||
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
|
generatePropertyMetadataArrayFieldIfNeeded(classAsmType);
|
||||||
generatePropertyMetadataArrayFieldIfNeeded(classAsmType);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isGenericToArrayPresent() {
|
private boolean isGenericToArrayPresent() {
|
||||||
|
|||||||
@@ -334,6 +334,8 @@ public abstract class MemberCodegen<T extends JetElement/* TODO: & JetDeclaratio
|
|||||||
v.newField(NO_ORIGIN, ACC_PRIVATE | ACC_STATIC | ACC_FINAL | ACC_SYNTHETIC, JvmAbi.PROPERTY_METADATA_ARRAY_NAME,
|
v.newField(NO_ORIGIN, ACC_PRIVATE | ACC_STATIC | ACC_FINAL | ACC_SYNTHETIC, JvmAbi.PROPERTY_METADATA_ARRAY_NAME,
|
||||||
"[" + PROPERTY_METADATA_TYPE, null, null);
|
"[" + PROPERTY_METADATA_TYPE, null, null);
|
||||||
|
|
||||||
|
if (state.getClassBuilderMode() == ClassBuilderMode.LIGHT_CLASSES) return;
|
||||||
|
|
||||||
InstructionAdapter iv = createOrGetClInitCodegen().v;
|
InstructionAdapter iv = createOrGetClInitCodegen().v;
|
||||||
iv.iconst(delegatedProperties.size());
|
iv.iconst(delegatedProperties.size());
|
||||||
iv.newarray(PROPERTY_METADATA_TYPE);
|
iv.newarray(PROPERTY_METADATA_TYPE);
|
||||||
|
|||||||
@@ -77,9 +77,7 @@ public class PackagePartCodegen extends MemberCodegen<JetFile> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void generateSyntheticParts() {
|
protected void generateSyntheticParts() {
|
||||||
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
|
generatePropertyMetadataArrayFieldIfNeeded(packagePartType);
|
||||||
generatePropertyMetadataArrayFieldIfNeeded(packagePartType);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
|
||||||
|
fun Any.get(x: Any?, y: Any): Any = null!!
|
||||||
|
|
||||||
|
class <!CONFLICTING_JVM_DECLARATIONS!>C<!> {
|
||||||
|
val x by 1
|
||||||
|
<!CONFLICTING_JVM_DECLARATIONS!>val `$propertyMetadata`: Array<PropertyMetadata><!> = null!!
|
||||||
|
}
|
||||||
|
|
||||||
|
val x by 1
|
||||||
|
<!CONFLICTING_JVM_DECLARATIONS!>val `$propertyMetadata`: Array<PropertyMetadata><!> = null!!
|
||||||
@@ -2865,6 +2865,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
|||||||
doTest("compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/instance.kt");
|
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")
|
@TestMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl")
|
||||||
|
|||||||
Reference in New Issue
Block a user