blob: a626f8cf705c49ab600101ff37fb02aaa829556b [file]
// LANGUAGE: +CompanionBlocksAndExtensions
var initialized = false
class Foo() {
companion {
val staticProp = run { initialized = true; "" }
}
}
companion fun Foo.sayHi(): String { return "hi" }
companion val Foo.greeting: String = "hi"
fun box(): String {
val hi = Foo.sayHi()
if (hi != "hi") return "FAIL: hi=${hi}"
val greeting = Foo.greeting
if (greeting != "hi") return "FAIL: Foo.greeting=${greeting}"
// Companion extension access should not trigger initializers:
// ยง3.4 (companion extensions): we remark that calling a companion extension does not imply the initialization of the classifier being extended
if (initialized) return "FAIL: initialized=${initialized}"
return "OK"
}