| == Delegate == |
| class Delegate { |
| fun getValue(_this: Nothing?, p: KProperty<*>): Int = 0 |
| } |
| --------------------- |
| L0: |
| 1 <START> |
| L1: |
| <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |
| == getValue == |
| fun getValue(_this: Nothing?, p: KProperty<*>): Int = 0 |
| --------------------- |
| L0: |
| 1 <START> |
| v(_this: Nothing?) |
| magic[FAKE_INITIALIZER](_this: Nothing?) -> <v0> |
| w(_this|<v0>) |
| v(p: KProperty<*>) |
| magic[FAKE_INITIALIZER](p: KProperty<*>) -> <v1> |
| w(p|<v1>) |
| r(0) -> <v2> |
| ret(*|<v2>) L1 |
| L1: |
| <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |
| == a == |
| val a = Delegate() |
| --------------------- |
| L0: |
| 1 <START> |
| v(val a = Delegate()) |
| mark(Delegate()) |
| call(Delegate(), <init>) -> <v0> |
| w(a|<v0>) |
| L1: |
| <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |
| == b == |
| val b by a |
| --------------------- |
| L0: |
| 1 <START> |
| v(val b by a) |
| magic[UNRECOGNIZED_WRITE_RHS](val b by a) -> <v0> |
| w(b|<v0>) |
| r(a) -> <v1> |
| magic[VALUE_CONSUMER](val b by a|<v1>) -> <v2> |
| L1: |
| <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |