Files

19 lines
543 B
Kotlin
Vendored

class A(val x: String) {
fun y() = x
// Both `x` and `y()` assumed to respect their nullability information,
// so only `a` and `b` need to be checked.
fun foo1(a: A?, b: A?) = a?.x ?: b?.x ?: x // if (a == null) if (b == null) x else b.x else a.x
fun foo2(a: A?, b: A?) = a?.y() ?: b?.y() ?: y() // if (a == null) if (b == null) y() else b.y() else a.y()
}
// JVM_TEMPLATES
// Optimization not implemented
// 4 IFNULL
// 4 IFNONNULL
// 2 ACONST_NULL
// JVM_IR_TEMPLATES
// 4 IFNULL
// 2 IFNONNULL
// 0 ACONST_NULL