blob: b7f3890046c04e1db68df77c683b18bd37a4b69f [file]
// ISSUE: KT-89290
// WITH_STDLIB
// LANGUAGE: +CompanionBlocks +CompanionExtensions
var initLog = ""
class C {
companion {
val trigger = run {
initLog += "T"
"trigger"
}
lateinit var late: String
fun isLateInitialized() = ::late.isInitialized
}
}
fun box(): String {
if (C.isLateInitialized()) return "FAIL: late before assignment"
if (initLog != "T") return "FAIL: late guard: $initLog"
C.late = "OK"
if (!C.isLateInitialized()) return "FAIL: late after assignment"
if (C.trigger != "trigger") return "FAIL: trigger"
if (initLog != "T") return "FAIL: double init: $initLog"
return C.late
}