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");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimodule.kt")
|
@TestMetadata("enumEntriesMultimodule.kt")
|
||||||
public void testEnumEntriesMultimodule() throws Exception {
|
public void testEnumEntriesMultimodule() throws Exception {
|
||||||
|
|||||||
+6
@@ -16649,6 +16649,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntriesFromJava.kt");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimodule.kt")
|
@TestMetadata("enumEntriesMultimodule.kt")
|
||||||
public void testEnumEntriesMultimodule() throws Exception {
|
public void testEnumEntriesMultimodule() throws Exception {
|
||||||
|
|||||||
+3
-2
@@ -34,8 +34,9 @@ class StaticInitializersLowering(override val context: JvmBackendContext) : Init
|
|||||||
JvmLoweredDeclarationOrigin.GENERATED_PROPERTY_REFERENCE -> 1
|
JvmLoweredDeclarationOrigin.GENERATED_PROPERTY_REFERENCE -> 1
|
||||||
IrDeclarationOrigin.FIELD_FOR_ENUM_ENTRY -> 2
|
IrDeclarationOrigin.FIELD_FOR_ENUM_ENTRY -> 2
|
||||||
IrDeclarationOrigin.FIELD_FOR_ENUM_VALUES -> 3
|
IrDeclarationOrigin.FIELD_FOR_ENUM_VALUES -> 3
|
||||||
IrDeclarationOrigin.FIELD_FOR_OBJECT_INSTANCE -> 4
|
IrDeclarationOrigin.FIELD_FOR_ENUM_ENTRIES -> 4
|
||||||
else -> 5
|
IrDeclarationOrigin.FIELD_FOR_OBJECT_INSTANCE -> 5
|
||||||
|
else -> 6
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
irClass.addFunction {
|
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");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
|
|||||||
+6
@@ -16649,6 +16649,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntriesFromJava.kt");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimodule.kt")
|
@TestMetadata("enumEntriesMultimodule.kt")
|
||||||
public void testEnumEntriesMultimodule() throws Exception {
|
public void testEnumEntriesMultimodule() throws Exception {
|
||||||
|
|||||||
+6
@@ -16649,6 +16649,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntriesFromJava.kt");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimodule.kt")
|
@TestMetadata("enumEntriesMultimodule.kt")
|
||||||
public void testEnumEntriesMultimodule() throws Exception {
|
public void testEnumEntriesMultimodule() throws Exception {
|
||||||
|
|||||||
+5
@@ -13366,6 +13366,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
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")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void ignoreEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void ignoreEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/enum/enumEntriesMultimoduleNoMappings.kt");
|
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");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
|
|||||||
+6
@@ -12683,6 +12683,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest {
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
|
|||||||
+6
@@ -12683,6 +12683,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
|
|||||||
+6
@@ -12683,6 +12683,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
|
|||||||
+6
@@ -13831,6 +13831,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
|
|||||||
+6
@@ -14155,6 +14155,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
|
|||||||
+6
@@ -13670,6 +13670,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
|
|||||||
+6
@@ -13832,6 +13832,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
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
|
@Test
|
||||||
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
|
|||||||
Generated
+5
@@ -11249,6 +11249,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest
|
|||||||
runTest("compiler/testData/codegen/box/enum/enumEntries.kt");
|
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")
|
@TestMetadata("enumEntriesMultimoduleNoMappings.kt")
|
||||||
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
public void testEnumEntriesMultimoduleNoMappings() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/enum/enumEntriesMultimoduleNoMappings.kt");
|
runTest("compiler/testData/codegen/box/enum/enumEntriesMultimoduleNoMappings.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user