mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 15:53:37 +00:00
* When referencing the companion itself, they should use the $$INSTANCE field, not the (null until <clinit> returns) Companion field of the interface. * Interface companion init blocks should be made static.
23 lines
521 B
Kotlin
Vendored
23 lines
521 B
Kotlin
Vendored
// IGNORE_BACKEND_FIR: JVM_IR
|
|
// Inside of the companion we have to access the instance through the local Companion field,
|
|
// not by indirection through the Companion field of the enclosing class.
|
|
// Class initialization might not have finished yet.
|
|
var result = ""
|
|
|
|
interface A {
|
|
|
|
companion object {
|
|
|
|
val prop = test()
|
|
|
|
fun test(): String {
|
|
result += "OK"
|
|
return result
|
|
}
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
if (A.prop != "OK") return "fail ${A.prop}"
|
|
return result
|
|
} |