mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 08:31:29 +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.
22 lines
264 B
Kotlin
Vendored
22 lines
264 B
Kotlin
Vendored
class A
|
|
|
|
fun foo(x: Any?) {}
|
|
|
|
fun box() {
|
|
val x: Int? = 1
|
|
x!!
|
|
|
|
val z: Int? = if (1 == 1) x else null
|
|
z!!
|
|
|
|
foo(1 as java.lang.Integer)
|
|
|
|
val y: Any? = if (1 == 1) x else A()
|
|
y!!
|
|
}
|
|
|
|
// 0 IFNULL
|
|
// 1 IFNONNULL
|
|
// 1 throwNpe
|
|
// 0 ATHROW
|