JVM: ensure the $ENTRIES field is initialized before use
#KT-57784 Fixed
This commit is contained in:
committed by
Alexander Udalov
parent
79599ab69e
commit
7b4e6bae0e
+6
@@ -16649,6 +16649,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesFromJava.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimodule.kt")
|
||||
public void testEnumEntriesMultimodule() throws Exception {
|
||||
|
||||
+6
@@ -16649,6 +16649,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesFromJava.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimodule.kt")
|
||||
public void testEnumEntriesMultimodule() throws Exception {
|
||||
|
||||
+3
-2
@@ -34,8 +34,9 @@ class StaticInitializersLowering(override val context: JvmBackendContext) : Init
|
||||
JvmLoweredDeclarationOrigin.GENERATED_PROPERTY_REFERENCE -> 1
|
||||
IrDeclarationOrigin.FIELD_FOR_ENUM_ENTRY -> 2
|
||||
IrDeclarationOrigin.FIELD_FOR_ENUM_VALUES -> 3
|
||||
IrDeclarationOrigin.FIELD_FOR_OBJECT_INSTANCE -> 4
|
||||
else -> 5
|
||||
IrDeclarationOrigin.FIELD_FOR_ENUM_ENTRIES -> 4
|
||||
IrDeclarationOrigin.FIELD_FOR_OBJECT_INSTANCE -> 5
|
||||
else -> 6
|
||||
}
|
||||
}
|
||||
irClass.addFunction {
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// !LANGUAGE: +EnumEntries
|
||||
// IGNORE_BACKEND: JVM, JS
|
||||
// WITH_STDLIB
|
||||
|
||||
enum class MyEnum {
|
||||
OK, NOPE;
|
||||
|
||||
companion object {
|
||||
@OptIn(ExperimentalStdlibApi::class)
|
||||
val ok = entries[0]
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return MyEnum.ok.toString()
|
||||
}
|
||||
+6
@@ -16295,6 +16295,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
|
||||
+6
@@ -16649,6 +16649,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesFromJava.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimodule.kt")
|
||||
public void testEnumEntriesMultimodule() throws Exception {
|
||||
|
||||
+6
@@ -16649,6 +16649,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesFromJava.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimodule.kt")
|
||||
public void testEnumEntriesMultimodule() throws Exception {
|
||||
|
||||
+5
@@ -13366,6 +13366,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void ignoreEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void ignoreEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesMultimoduleNoMappings.kt");
|
||||
|
||||
+6
@@ -12587,6 +12587,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
|
||||
+6
@@ -12683,6 +12683,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
|
||||
+6
@@ -12683,6 +12683,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
|
||||
+6
@@ -12683,6 +12683,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
|
||||
+6
@@ -13831,6 +13831,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
|
||||
+6
@@ -14155,6 +14155,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
|
||||
+6
@@ -13670,6 +13670,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
|
||||
+6
@@ -13832,6 +13832,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
|
||||
Generated
+5
@@ -11249,6 +11249,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("enumEntriesInCompanion.kt")
|
||||
public void testEnumEntriesInCompanion() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesInCompanion.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/enum/enumEntriesMultimoduleNoMappings.kt");
|
||||
|
||||
Reference in New Issue
Block a user