mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 00:21:47 +00:00
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.
23 lines
337 B
Kotlin
Vendored
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
|
|
} |