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.
This commit is contained in:
Alexander Udalov
2023-08-17 13:19:23 +02:00
committed by Space Team
parent cb65d2420f
commit db31f1f926
11 changed files with 11 additions and 11 deletions
@@ -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 {
@@ -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 <clinit>(): void
private method <init>(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[]
}
@@ -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<E>() != listOf(E.A, E.B, E.C)) return "FAIL"
return "OK"
}
}
@@ -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<EnumWithClash>().toString() != "[values, entries, valueOf]") return "FAIL 3"
return "OK"
}
}
@@ -4,6 +4,7 @@
// WITH_STDLIB
// MODULE: lib
// !LANGUAGE: -EnumEntries
// FILE: MyEnum.kt
package test
@@ -2,6 +2,7 @@
// WITH_STDLIB
// MODULE: lib
// !LANGUAGE: -EnumEntries
// FILE: 1.kt
package test
@@ -3,6 +3,7 @@
// WITH_STDLIB
// MODULE: lib
// !LANGUAGE: -EnumEntries
// FILE: 1.kt
package test
@@ -3,6 +3,7 @@
// WITH_STDLIB
// MODULE: lib
// !LANGUAGE: -EnumEntries
// FILE: 1.kt
package test
@@ -3,6 +3,7 @@
// WITH_STDLIB
// MODULE: lib
// !LANGUAGE: -EnumEntries
// FILE: MyEnums.kt
enum class MyEnum {
N, O
@@ -3,6 +3,7 @@
// WITH_STDLIB
// MODULE: lib
// !LANGUAGE: -EnumEntries
// FILE: MyEnums.kt
enum class MyEnum {
N, O
@@ -3,6 +3,7 @@
// WITH_RUNTIME
// MODULE: lib
// !LANGUAGE: -EnumEntries
// FILE: 1.kt
enum class X {