Files
kotlin/compiler/testData/codegen/box/nullCheckOptimization/primitiveCheckWithSideEffect.kt
Mads Ager 690b8e0ac9 JVM_IR: Optimize null checks.
Introduce lowering to remove null checks for primitive type
expressions and replace them with true/false. Side-effects
are preserved.

Generate ifnull/ifnonnull instructions for null checks instead
of materializing a null literal for an equality check.
2019-01-19 09:43:43 +01:00

23 lines
337 B
Kotlin
Vendored

var result = "fail 1"
fun withSideEffect() : Int {
result = "OK"
return 42
}
fun box(): String {
if (withSideEffect() == null) {
return "fail 2"
}
if (result != "OK") {
return "fail 3"
}
result = "fail 4"
if (withSideEffect() != null) {
return result
}
return result
}