| 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() | |
| // } | |
| } |