Fix enum entry reference from enum entry initialization context
Enum entries are "special" kind of singletons that should be referenced as a captured 'this' instance inside during entry initialization, because corresponding static fields in enum class are not initialized yet. #KT-7257 Fixed
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
|
||||
enum class A {
|
||||
X {
|
||||
val k = "K"
|
||||
|
||||
val anonObject = object {
|
||||
inner class Inner {
|
||||
val x = "O" + k
|
||||
}
|
||||
|
||||
val innerX = Inner().x
|
||||
|
||||
override fun toString() = innerX
|
||||
}
|
||||
|
||||
override val test = anonObject.toString()
|
||||
};
|
||||
|
||||
abstract val test: String
|
||||
}
|
||||
|
||||
fun box() = A.X.test
|
||||
Reference in New Issue
Block a user