Files
kotlin-fork/compiler/testData/ir/irText/classes/enum.kt
T
pyos 35c2573b33 PSI2IR: generate IrEnumConstructorCalls with correct return type
Normally, the fact that is was Unit was not visible as enum constructors
are lowered to normal class constructors anyway. The exception is when
the arguments are reordered, causing the incorrect return type to leak
into the block that holds temporary variables.
2019-12-03 11:54:41 +03:00

51 lines
759 B
Kotlin
Vendored

// WITH_RUNTIME
enum class TestEnum1 {
TEST1, TEST2
}
enum class TestEnum2(val x: Int) {
TEST1(1),
TEST2(2),
TEST3(3) {}
}
enum class TestEnum3 {
TEST {
override fun foo() {
println("Hello, world!")
}
}
;
abstract fun foo()
}
enum class TestEnum4(val x: Int) {
TEST1(1) {
override fun foo() {
println(TEST1)
}
},
TEST2(2) {
val z: Int
init {
z = x
}
override fun foo() {
println(TEST2)
}
}
;
abstract fun foo()
}
enum class TestEnum5(val x: Int = 0) {
TEST1, TEST2(), TEST3(0)
}
fun f(): Int = 1
enum class TestEnum6(val x: Int, val y: Int) {
TEST(y = f(), x = f())
}