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 descriptor = WrappedFieldDescriptor()
|
||||
// TODO: mark ACC_SYNTHETIC
|
||||
return IrFieldImpl(
|
||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.FIELD_FOR_ENUM_VALUES,
|
||||
IrFieldSymbolImpl(descriptor),
|
||||
|
||||
@@ -49,7 +49,7 @@ interface IrDeclarationOrigin {
|
||||
object BRIDGE_SPECIAL: IrDeclarationOriginImpl("BRIDGE_SPECIAL")
|
||||
|
||||
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")
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@TestMetadata("enumFields.kt")
|
||||
public void testEnumFields() throws Exception {
|
||||
runTest("compiler/testData/writeFlags/property/enumFields.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/writeFlags/property/classObject")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@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);
|
||||
}
|
||||
|
||||
@TestMetadata("enumFields.kt")
|
||||
public void testEnumFields() throws Exception {
|
||||
runTest("compiler/testData/writeFlags/property/enumFields.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/writeFlags/property/classObject")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
Reference in New Issue
Block a user