JVM: support enumEntries intrinsic for Kotlin enums

Implementation is very similar to the `enumValues` intrinsic.

Java enums and old (pre-1.9) Kotlin enums will be supported in a
subsequent commit.

 #KT-59710
This commit is contained in:
Alexander Udalov
2023-07-19 16:08:36 +02:00
committed by Space Team
parent c94c5a7d58
commit 874d1c514a
36 changed files with 652 additions and 4 deletions
@@ -43015,6 +43015,18 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/enum"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
}
@Test
@TestMetadata("enumEntries.kt")
public void testEnumEntries() throws Exception {
runTest("compiler/testData/codegen/boxInline/enum/enumEntries.kt");
}
@Test
@TestMetadata("enumEntriesChainCapturedType.kt")
public void testEnumEntriesChainCapturedType() throws Exception {
runTest("compiler/testData/codegen/boxInline/enum/enumEntriesChainCapturedType.kt");
}
@Test
@TestMetadata("kt10569.kt")
public void testKt10569() throws Exception {
@@ -44113,6 +44113,18 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/enum"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
}
@Test
@TestMetadata("enumEntries.kt")
public void testEnumEntries() throws Exception {
runTest("compiler/testData/codegen/boxInline/enum/enumEntries.kt");
}
@Test
@TestMetadata("enumEntriesChainCapturedType.kt")
public void testEnumEntriesChainCapturedType() throws Exception {
runTest("compiler/testData/codegen/boxInline/enum/enumEntriesChainCapturedType.kt");
}
@Test
@TestMetadata("kt10569.kt")
public void testKt10569() throws Exception {
@@ -42467,6 +42467,18 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/enum"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
}
@Test
@TestMetadata("enumEntries.kt")
public void testEnumEntries() throws Exception {
runTest("compiler/testData/codegen/boxInline/enum/enumEntries.kt");
}
@Test
@TestMetadata("enumEntriesChainCapturedType.kt")
public void testEnumEntriesChainCapturedType() throws Exception {
runTest("compiler/testData/codegen/boxInline/enum/enumEntriesChainCapturedType.kt");
}
@Test
@TestMetadata("kt10569.kt")
public void testKt10569() throws Exception {
@@ -43016,6 +43016,18 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/enum"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
}
@Test
@TestMetadata("enumEntries.kt")
public void testEnumEntries() throws Exception {
runTest("compiler/testData/codegen/boxInline/enum/enumEntries.kt");
}
@Test
@TestMetadata("enumEntriesChainCapturedType.kt")
public void testEnumEntriesChainCapturedType() throws Exception {
runTest("compiler/testData/codegen/boxInline/enum/enumEntriesChainCapturedType.kt");
}
@Test
@TestMetadata("kt10569.kt")
public void testKt10569() throws Exception {