Files
kotlin-fork/compiler/testData/ir/irText/expressions/smartCastsWithDestructuring.kt.txt
T
Mads Ager 6fc0de39c2 [PSI2IR] Propagate smart cast information for variable loads.
This gives us more precise type information and can enable backend
optimizations. This was motivated by when expressions not compiled
to table switches in the JVM_IR backend.

Fixed KT-36845.
2021-01-11 12:01:47 +03:00

28 lines
370 B
Plaintext
Vendored

interface I1 {
}
interface I2 {
}
operator fun I1.component1(): Int {
return 1
}
operator fun I2.component2(): String {
return ""
}
fun test(x: I1) {
when {
x !is I2 -> return Unit
}
// COMPOSITE {
val tmp0_container: I2 = x /*as I2 */
val c1: Int = tmp0_container /*as I1 */.component1()
val c2: String = tmp0_container.component2()
// }
}