fix(KT-45056, KT-47516): use enum as an IR class instead of enum entity class.

This commit is contained in:
Artem Kobzar
2021-10-08 16:21:49 +00:00
committed by Space
parent 3dd8ad3599
commit dca4a8e722
11 changed files with 146 additions and 2 deletions
@@ -0,0 +1,13 @@
package foo
enum class X {
B {
override val value2 = "K"
override val value = "O" + B.value2.get(X.B.ordinal).toString()
};
abstract val value2: String
abstract val value: String
}
fun box() = X.B.value
@@ -0,0 +1,45 @@
// WITH_RUNTIME
package foo
import kotlin.test.assertEquals
enum class TestA {
FIRST {
override val label: String = "first A"
},
SECOND {
override val label: String = "second A"
},
THIRD {
override val label: String = "third A"
};
abstract val label: String
}
enum class TestB(val label: String) {
FIRST("first B"),
SECOND("second B"),
THIRD("third B");
}
fun box(): String {
assertEquals(TestA.FIRST.label, "first A")
assertEquals(TestA.SECOND.label, "second A")
assertEquals(TestA.THIRD.label, "third A")
assertEquals(TestA.FIRST.ordinal, 0)
assertEquals(TestA.SECOND.ordinal, 1)
assertEquals(TestA.THIRD.ordinal, 2)
assertEquals(TestB.FIRST.label,"first B")
assertEquals(TestB.SECOND.label,"second B")
assertEquals(TestB.THIRD.label,"third B")
assertEquals(TestB.FIRST.ordinal, 0)
assertEquals(TestB.SECOND.ordinal, 1)
assertEquals(TestB.THIRD.ordinal, 2)
return "OK"
}