Files
kotlin-fork/compiler/testData/ir/irText/expressions/chainOfSafeCalls.kt.txt
T
2020-11-26 00:14:55 +03:00

46 lines
932 B
Plaintext
Vendored

class C {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
fun foo(): C {
return <this>
}
fun bar(): C? {
return <this>
}
}
fun test(nc: C?): C? {
return { // BLOCK
val tmp3_safe_receiver: C? = { // BLOCK
val tmp2_safe_receiver: C? = { // BLOCK
val tmp1_safe_receiver: C? = { // BLOCK
val tmp0_safe_receiver: C? = nc
when {
EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
else -> tmp0_safe_receiver.foo()
}
}
when {
EQEQ(arg0 = tmp1_safe_receiver, arg1 = null) -> null
else -> tmp1_safe_receiver.bar()
}
}
when {
EQEQ(arg0 = tmp2_safe_receiver, arg1 = null) -> null
else -> tmp2_safe_receiver.foo()
}
}
when {
EQEQ(arg0 = tmp3_safe_receiver, arg1 = null) -> null
else -> tmp3_safe_receiver.foo()
}
}
}