0dd09ea7de
The reference can be lowered to `this` if it is captured in the lexical scope of the corresponding enum entry, and not used by the enum entry's super constructor. Otherwise, it is lowered to `GETFIELD SomeEnum.SomeEntry`.
14 lines
340 B
Kotlin
Vendored
14 lines
340 B
Kotlin
Vendored
enum class Test(val x: String, val closure1: () -> String) {
|
|
FOO("O", { FOO.x }) {
|
|
override val y: String = "K"
|
|
val closure2 = { y } // Implicit 'FOO'
|
|
override val z: String = closure2()
|
|
};
|
|
|
|
abstract val y: String
|
|
abstract val z: String
|
|
|
|
fun test() = closure1() + z
|
|
}
|
|
|
|
fun box() = Test.FOO.test() |