| == Bar == |
| class Bar { |
| } |
| --------------------- |
| L0: |
| 1 <START> |
| L1: |
| <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |
| == Foo == |
| class Foo() { |
| fun Bar.invoke() {} |
| } |
| --------------------- |
| L0: |
| 1 <START> |
| L1: |
| <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |
| == invoke == |
| fun Bar.invoke() {} |
| --------------------- |
| L0: |
| 1 <START> |
| 2 mark({}) |
| read (Unit) |
| L1: |
| 1 <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |
| == foobar == |
| fun Foo.foobar(bar: Bar) { |
| bar() |
| } |
| --------------------- |
| L0: |
| 1 <START> |
| v(bar: Bar) |
| magic[FAKE_INITIALIZER](bar: Bar) -> <v0> |
| w(bar|<v0>) |
| 2 mark({ bar() }) |
| r(bar) -> <v1> |
| magic[IMPLICIT_RECEIVER](bar()) -> <v2> |
| mark(bar()) |
| call(bar(), invoke|<v1>, <v2>) -> <v3> |
| L1: |
| 1 <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |