b1884456b8
Merge-request: KT-MR-11146 Merged-by: Artem Kobzar <Artem.Kobzar@jetbrains.com>
70 lines
1.2 KiB
Kotlin
Vendored
70 lines
1.2 KiB
Kotlin
Vendored
// EXPECTED_REACHABLE_NODES: 1291
|
|
// See KT-6201
|
|
package foo
|
|
|
|
var log = ""
|
|
|
|
open class Mixin {
|
|
init {
|
|
log = "mixin"
|
|
}
|
|
}
|
|
|
|
fun initCall(): Number {
|
|
log = "initCall"
|
|
return 2
|
|
}
|
|
|
|
object O1 {
|
|
init {
|
|
log = "O1 init"
|
|
}
|
|
}
|
|
|
|
object O2 {
|
|
init {
|
|
initCall()
|
|
}
|
|
}
|
|
|
|
object O3 : Mixin()
|
|
|
|
object O4 {
|
|
val someValue = initCall()
|
|
}
|
|
|
|
object O5 {
|
|
val someValue = O3.also { log = "O5 also" }
|
|
}
|
|
|
|
@JsExport
|
|
object O6 {
|
|
init {
|
|
log = "O6 init"
|
|
}
|
|
object O7 {
|
|
init {
|
|
log = "O7 init"
|
|
}
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
if (log != "") return "Fail: something was initialized before any object was used: $log"
|
|
O1
|
|
if (log != "O1 init") return "Fail: O1 didn't initialized lazy"
|
|
O2
|
|
if (log != "initCall") return "Fail: O2 didn't initialized lazy"
|
|
O3
|
|
if (log != "mixin") return "Fail: O3 didn't initialized lazy"
|
|
O4
|
|
if (log != "initCall") return "Fail: O4 didn't initialized lazy"
|
|
O5
|
|
if (log != "O5 also") return "Fail: O5 didn't initialized lazy"
|
|
O6
|
|
if (log != "O6 init") return "Fail: O6 didn't initialized lazy"
|
|
O6.O7
|
|
if (log != "O7 init") return "Fail: O7 didn't initialized lazy"
|
|
|
|
return "OK"
|
|
} |