Files
kotlin-fork/compiler/testData/ir/irText/expressions/kt30796.kt.txt
T
Dmitriy Novozhilov b454fcc1e0 [FIR] Save IR dumps to .ir.txt files instead of .txt in tests
This is needed to avoid clashes between different dumps from different
  handlers
2021-10-12 17:26:36 +03:00

86 lines
2.0 KiB
Kotlin
Vendored

fun <T : Any?> magic(): T {
throw Exception()
}
fun <T : Any?> test(value: T, value2: T) {
val x1: Any = { // BLOCK
val tmp0_elvis_lhs: T = value
when {
EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> 42
else -> tmp0_elvis_lhs
}
}
val x2: Any = { // BLOCK
val tmp2_elvis_lhs: T = value
when {
EQEQ(arg0 = tmp2_elvis_lhs, arg1 = null) -> { // BLOCK
val tmp1_elvis_lhs: T = value2
when {
EQEQ(arg0 = tmp1_elvis_lhs, arg1 = null) -> 42
else -> tmp1_elvis_lhs
}
}
else -> tmp2_elvis_lhs
}
}
val x3: Any = { // BLOCK
val tmp4_elvis_lhs: T = { // BLOCK
val tmp3_elvis_lhs: T = value
when {
EQEQ(arg0 = tmp3_elvis_lhs, arg1 = null) -> value2
else -> tmp3_elvis_lhs
}
}
when {
EQEQ(arg0 = tmp4_elvis_lhs, arg1 = null) -> 42
else -> tmp4_elvis_lhs
}
}
val x4: Any = { // BLOCK
val tmp6_elvis_lhs: T = { // BLOCK
val tmp5_elvis_lhs: T = value
when {
EQEQ(arg0 = tmp5_elvis_lhs, arg1 = null) -> value2
else -> tmp5_elvis_lhs
}
}
when {
EQEQ(arg0 = tmp6_elvis_lhs, arg1 = null) -> 42
else -> tmp6_elvis_lhs
}
}
val x5: Any = { // BLOCK
val tmp7_elvis_lhs: Any? = magic<Any?>()
when {
EQEQ(arg0 = tmp7_elvis_lhs, arg1 = null) -> 42
else -> tmp7_elvis_lhs
}
}
val x6: Any = { // BLOCK
val tmp9_elvis_lhs: Any? = { // BLOCK
val tmp8_elvis_lhs: T = value
when {
EQEQ(arg0 = tmp8_elvis_lhs, arg1 = null) -> magic<Any?>()
else -> tmp8_elvis_lhs
}
}
when {
EQEQ(arg0 = tmp9_elvis_lhs, arg1 = null) -> 42
else -> tmp9_elvis_lhs
}
}
val x7: Any = { // BLOCK
val tmp11_elvis_lhs: Any? = { // BLOCK
val tmp10_elvis_lhs: Any? = magic<Any?>()
when {
EQEQ(arg0 = tmp10_elvis_lhs, arg1 = null) -> value
else -> tmp10_elvis_lhs
}
}
when {
EQEQ(arg0 = tmp11_elvis_lhs, arg1 = null) -> 42
else -> tmp11_elvis_lhs
}
}
}