Files
kotlin/compiler/testData/codegen/bytecodeText/boxingOptimization/unsafeRemoving.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

31 lines
510 B
Kotlin
Vendored

fun returningBoxed() : Int? = 1
fun acceptingBoxed(x : Int?) : Int ? = x
class A(var x : Int? = null)
val one = 1
fun foo() {
val rb = returningBoxed()
acceptingBoxed(2)
val a = A()
a.x = 3
val b = arrayOfNulls<Int>(4)
b[100] = 5
val x: Int? = 6
val hc = x!!.hashCode()
val y: Int? = 7
val z: Int? = 8
val res = y === z
val c1: Any = if (1 == one) 0 else "abc"
val c2: Any = if (1 != one) 0 else "abc"
}
// 9 java/lang/Integer.valueOf
// 0 intValue