JVM IR: Mark Enum.$VALUES field as synthetic (#2957)
This commit is contained in:
committed by
Alexander Udalov
parent
6b5d92a693
commit
7f319c18de
-1
@@ -257,7 +257,6 @@ private class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringP
|
|||||||
val irValuesInitializer = createSyntheticValuesFieldInitializerExpression()
|
val irValuesInitializer = createSyntheticValuesFieldInitializerExpression()
|
||||||
|
|
||||||
val descriptor = WrappedFieldDescriptor()
|
val descriptor = WrappedFieldDescriptor()
|
||||||
// TODO: mark ACC_SYNTHETIC
|
|
||||||
return IrFieldImpl(
|
return IrFieldImpl(
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.FIELD_FOR_ENUM_VALUES,
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.FIELD_FOR_ENUM_VALUES,
|
||||||
IrFieldSymbolImpl(descriptor),
|
IrFieldSymbolImpl(descriptor),
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ interface IrDeclarationOrigin {
|
|||||||
object BRIDGE_SPECIAL: IrDeclarationOriginImpl("BRIDGE_SPECIAL")
|
object BRIDGE_SPECIAL: IrDeclarationOriginImpl("BRIDGE_SPECIAL")
|
||||||
|
|
||||||
object FIELD_FOR_ENUM_ENTRY : IrDeclarationOriginImpl("FIELD_FOR_ENUM_ENTRY")
|
object FIELD_FOR_ENUM_ENTRY : IrDeclarationOriginImpl("FIELD_FOR_ENUM_ENTRY")
|
||||||
object FIELD_FOR_ENUM_VALUES : IrDeclarationOriginImpl("FIELD_FOR_ENUM_VALUES")
|
object FIELD_FOR_ENUM_VALUES : IrDeclarationOriginImpl("FIELD_FOR_ENUM_VALUES", isSynthetic = true)
|
||||||
object FIELD_FOR_OBJECT_INSTANCE : IrDeclarationOriginImpl("FIELD_FOR_OBJECT_INSTANCE")
|
object FIELD_FOR_OBJECT_INSTANCE : IrDeclarationOriginImpl("FIELD_FOR_OBJECT_INSTANCE")
|
||||||
|
|
||||||
val isSynthetic: Boolean get() = false
|
val isSynthetic: Boolean get() = false
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
enum class Test {
|
||||||
|
A
|
||||||
|
}
|
||||||
|
|
||||||
|
// TESTED_OBJECT_KIND: property
|
||||||
|
// TESTED_OBJECTS: Test, $VALUES
|
||||||
|
// FLAGS: ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
|
||||||
|
|
||||||
|
// TESTED_OBJECT_KIND: property
|
||||||
|
// TESTED_OBJECTS: Test, A
|
||||||
|
// FLAGS: ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM
|
||||||
+5
@@ -902,6 +902,11 @@ public class WriteFlagsTestGenerated extends AbstractWriteFlagsTest {
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/writeFlags/property"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/writeFlags/property"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("enumFields.kt")
|
||||||
|
public void testEnumFields() throws Exception {
|
||||||
|
runTest("compiler/testData/writeFlags/property/enumFields.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/writeFlags/property/classObject")
|
@TestMetadata("compiler/testData/writeFlags/property/classObject")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
|||||||
+5
@@ -902,6 +902,11 @@ public class IrWriteFlagsTestGenerated extends AbstractIrWriteFlagsTest {
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/writeFlags/property"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/writeFlags/property"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("enumFields.kt")
|
||||||
|
public void testEnumFields() throws Exception {
|
||||||
|
runTest("compiler/testData/writeFlags/property/enumFields.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/writeFlags/property/classObject")
|
@TestMetadata("compiler/testData/writeFlags/property/classObject")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
|||||||
Reference in New Issue
Block a user