From db31f1f926b326d1fbd5df2d9c71853bfba917b6 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 17 Aug 2023 13:19:23 +0200 Subject: [PATCH] Tests: update some backend tests on enum entries The enumEntriesIntrinsicMultipleEnums.kt test was supposed to check that JVM backend generates 3 `$EntriesIntrinsicMappings` classes: for X, for Y, and for Z. Mappings classes are generated for enums without `entries`, i.e. Kotlin enums compiled without `EnumEntries` language feature, and Java enums. The test incorrectly _enabled_ the language feature for X though, and `$EntriesIntrinsicMappings` for X was generated anyway because of KT-61208. To keep the original intention of the test, I'm disabling the language feature for X, so that it will be considered as enum without `entries`. KT-61208 will be fixed in a separate commit (with separate tests). The boxInline and bytecodeText tests changed their meaning when language feature EnumEntries started to be enabled by default, so those changes are a continuation to ebd43fc8c0. The behavior did not change after enabling the feature, once again because of KT-61208. Also, remove obsolete error suppressions which are no longer needed after 64c8ce18a0. --- .../codegen/box/enum/enumEntriesIntrinsicMultipleEnums.kt | 2 +- .../codegen/box/enum/enumEntriesIntrinsicMultipleEnums.txt | 2 -- .../codegen/box/enum/enumEntriesIntrinsicWithoutFeature.kt | 6 ++---- .../testData/codegen/box/enum/enumEntriesNameClashes.kt | 5 +---- .../boxInline/anonymousObject/enumEntries/callSite.kt | 1 + .../boxInline/anonymousObject/enumEntries/declSite.kt | 1 + .../anonymousObject/enumEntries/declSiteSeveralMappings.kt | 1 + .../enumEntries/declSiteSeveralMappingsDifOrder.kt | 1 + .../codegen/bytecodeText/enum/enumEntriesMapping.kt | 1 + .../codegen/bytecodeText/enum/enumEntriesMultiMapping.kt | 1 + .../codegen/bytecodeText/inline/entriesMappingOnCallSite.kt | 1 + 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/compiler/testData/codegen/box/enum/enumEntriesIntrinsicMultipleEnums.kt b/compiler/testData/codegen/box/enum/enumEntriesIntrinsicMultipleEnums.kt index 51b70b9aeb0..5adbc6097ad 100644 --- a/compiler/testData/codegen/box/enum/enumEntriesIntrinsicMultipleEnums.kt +++ b/compiler/testData/codegen/box/enum/enumEntriesIntrinsicMultipleEnums.kt @@ -5,7 +5,7 @@ // ^ Check that there's only one $EntriesIntrinsicMappings class, with three fields (entries$0, entries$1, entries$2). // MODULE: lib -// !LANGUAGE: +EnumEntries +// !LANGUAGE: -EnumEntries // FILE: X.kt enum class X { diff --git a/compiler/testData/codegen/box/enum/enumEntriesIntrinsicMultipleEnums.txt b/compiler/testData/codegen/box/enum/enumEntriesIntrinsicMultipleEnums.txt index f4a0878c6eb..677fc7c7ce8 100644 --- a/compiler/testData/codegen/box/enum/enumEntriesIntrinsicMultipleEnums.txt +++ b/compiler/testData/codegen/box/enum/enumEntriesIntrinsicMultipleEnums.txt @@ -2,14 +2,12 @@ Module: lib @kotlin.Metadata public final enum class X { // source: 'X.kt' - private synthetic final static field $ENTRIES: kotlin.enums.EnumEntries private synthetic final static field $VALUES: X[] public final enum static field X1: X public final enum static field X2: X private synthetic final static method $values(): X[] static method (): void private method (p0: java.lang.String, p1: int): void - public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries public static method valueOf(p0: java.lang.String): X public static method values(): X[] } diff --git a/compiler/testData/codegen/box/enum/enumEntriesIntrinsicWithoutFeature.kt b/compiler/testData/codegen/box/enum/enumEntriesIntrinsicWithoutFeature.kt index 083b2a1f681..cea16a31147 100644 --- a/compiler/testData/codegen/box/enum/enumEntriesIntrinsicWithoutFeature.kt +++ b/compiler/testData/codegen/box/enum/enumEntriesIntrinsicWithoutFeature.kt @@ -2,14 +2,12 @@ // IGNORE_BACKEND: JS_IR, JS_IR_ES6, WASM // WITH_STDLIB -@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") - import kotlin.enums.* -enum class E { A, B, C }; +enum class E { A, B, C } @OptIn(kotlin.ExperimentalStdlibApi::class) fun box() : String { if (enumEntries() != listOf(E.A, E.B, E.C)) return "FAIL" return "OK" -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt b/compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt index 2c81a082241..e0b62cb03da 100644 --- a/compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt +++ b/compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt @@ -3,11 +3,8 @@ // IGNORE_BACKEND: JS, JVM // WITH_STDLIB -@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") - import kotlin.enums.* - enum class EnumWithClash { values, entries, @@ -21,4 +18,4 @@ fun box(): String { if (EnumWithClash.entries.toString() != "entries") return "FAIL 2" if (enumEntries().toString() != "[values, entries, valueOf]") return "FAIL 3" return "OK" -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/callSite.kt b/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/callSite.kt index 92f6b93a473..774981167d6 100644 --- a/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/callSite.kt +++ b/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/callSite.kt @@ -4,6 +4,7 @@ // WITH_STDLIB // MODULE: lib +// !LANGUAGE: -EnumEntries // FILE: MyEnum.kt package test diff --git a/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSite.kt b/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSite.kt index 8ab3dac639f..afcfadcf61e 100644 --- a/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSite.kt +++ b/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSite.kt @@ -2,6 +2,7 @@ // WITH_STDLIB // MODULE: lib +// !LANGUAGE: -EnumEntries // FILE: 1.kt package test diff --git a/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSiteSeveralMappings.kt b/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSiteSeveralMappings.kt index 0ffc0276412..c06d585bad1 100644 --- a/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSiteSeveralMappings.kt +++ b/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSiteSeveralMappings.kt @@ -3,6 +3,7 @@ // WITH_STDLIB // MODULE: lib +// !LANGUAGE: -EnumEntries // FILE: 1.kt package test diff --git a/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSiteSeveralMappingsDifOrder.kt b/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSiteSeveralMappingsDifOrder.kt index cf67f36a774..c4607f767e5 100644 --- a/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSiteSeveralMappingsDifOrder.kt +++ b/compiler/testData/codegen/boxInline/anonymousObject/enumEntries/declSiteSeveralMappingsDifOrder.kt @@ -3,6 +3,7 @@ // WITH_STDLIB // MODULE: lib +// !LANGUAGE: -EnumEntries // FILE: 1.kt package test diff --git a/compiler/testData/codegen/bytecodeText/enum/enumEntriesMapping.kt b/compiler/testData/codegen/bytecodeText/enum/enumEntriesMapping.kt index 9bc2998f348..8af39460f3a 100644 --- a/compiler/testData/codegen/bytecodeText/enum/enumEntriesMapping.kt +++ b/compiler/testData/codegen/bytecodeText/enum/enumEntriesMapping.kt @@ -3,6 +3,7 @@ // WITH_STDLIB // MODULE: lib +// !LANGUAGE: -EnumEntries // FILE: MyEnums.kt enum class MyEnum { N, O diff --git a/compiler/testData/codegen/bytecodeText/enum/enumEntriesMultiMapping.kt b/compiler/testData/codegen/bytecodeText/enum/enumEntriesMultiMapping.kt index 7848426870e..bb1a5483702 100644 --- a/compiler/testData/codegen/bytecodeText/enum/enumEntriesMultiMapping.kt +++ b/compiler/testData/codegen/bytecodeText/enum/enumEntriesMultiMapping.kt @@ -3,6 +3,7 @@ // WITH_STDLIB // MODULE: lib +// !LANGUAGE: -EnumEntries // FILE: MyEnums.kt enum class MyEnum { N, O diff --git a/compiler/testData/codegen/bytecodeText/inline/entriesMappingOnCallSite.kt b/compiler/testData/codegen/bytecodeText/inline/entriesMappingOnCallSite.kt index ffdc78627c5..574075572f2 100644 --- a/compiler/testData/codegen/bytecodeText/inline/entriesMappingOnCallSite.kt +++ b/compiler/testData/codegen/bytecodeText/inline/entriesMappingOnCallSite.kt @@ -3,6 +3,7 @@ // WITH_RUNTIME // MODULE: lib +// !LANGUAGE: -EnumEntries // FILE: 1.kt enum class X {