Generate $propertyMetadata field in LIGHT_CLASSES mode
This commit is contained in:
@@ -467,9 +467,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
}
|
||||
|
||||
private void generateDelegatedPropertyMetadataArray() {
|
||||
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
|
||||
generatePropertyMetadataArrayFieldIfNeeded(classAsmType);
|
||||
}
|
||||
generatePropertyMetadataArrayFieldIfNeeded(classAsmType);
|
||||
}
|
||||
|
||||
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,
|
||||
"[" + PROPERTY_METADATA_TYPE, null, null);
|
||||
|
||||
if (state.getClassBuilderMode() == ClassBuilderMode.LIGHT_CLASSES) return;
|
||||
|
||||
InstructionAdapter iv = createOrGetClInitCodegen().v;
|
||||
iv.iconst(delegatedProperties.size());
|
||||
iv.newarray(PROPERTY_METADATA_TYPE);
|
||||
|
||||
@@ -77,9 +77,7 @@ public class PackagePartCodegen extends MemberCodegen<JetFile> {
|
||||
|
||||
@Override
|
||||
protected void generateSyntheticParts() {
|
||||
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
|
||||
generatePropertyMetadataArrayFieldIfNeeded(packagePartType);
|
||||
}
|
||||
generatePropertyMetadataArrayFieldIfNeeded(packagePartType);
|
||||
}
|
||||
|
||||
@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");
|
||||
}
|
||||
|
||||
@TestMetadata("propertyMetadataCache.kt")
|
||||
public void testPropertyMetadataCache() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/propertyMetadataCache.kt");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl")
|
||||
|
||||
Reference in New Issue
Block a user