| == C == |
| class C { |
| operator fun component1() = 1 |
| operator fun component2() = 2 |
| } |
| --------------------- |
| L0: |
| 1 <START> |
| L1: |
| <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |
| == component1 == |
| operator fun component1() = 1 |
| --------------------- |
| L0: |
| 1 <START> |
| r(1) -> <v0> |
| ret(*|<v0>) L1 |
| L1: |
| <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |
| == component2 == |
| operator fun component2() = 2 |
| --------------------- |
| L0: |
| 1 <START> |
| r(2) -> <v0> |
| ret(*|<v0>) L1 |
| L1: |
| <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |
| == test == |
| fun test(c: C) { |
| val (a, b) = c |
| val d = 1 |
| } |
| --------------------- |
| L0: |
| 1 <START> |
| v(c: C) |
| magic[FAKE_INITIALIZER](c: C) -> <v0> |
| w(c|<v0>) |
| 2 mark({ val (a, b) = c val d = 1 }) |
| r(c) -> <v1> |
| v(a) |
| call(a, component1|<v1>) -> <v2> |
| w(a|<v2>) |
| v(b) |
| call(b, component2|<v1>) -> <v3> |
| w(b|<v3>) |
| v(val d = 1) |
| r(1) -> <v4> |
| w(d|<v4>) |
| L1: |
| 1 <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |