Files
kotlin/compiler/testData/codegen/bytecodeText/nullCheckOptimization/localLateinit/checkedAlways.kt
2018-12-21 16:20:45 +01:00

26 lines
549 B
Kotlin
Vendored

// IGNORE_BACKEND: JVM_IR
fun almostAlwaysTrue() = true
fun runNoInline(f: () -> Unit) = f()
fun test() {
lateinit var z: String
runNoInline {
// NB this code can be executed in a different thread multiple times, each time with different results.
// So, 'z' can be initialized at any moment, and should be checked on every read.
if (almostAlwaysTrue()) {
z = ""
}
}
println(z)
println(z)
println(z)
}
// 0 IFNULL
// 3 IFNONNULL
// 3 throwUninitializedPropertyAccessException