| == foo == |
| fun foo() { |
| val a = 1 |
| val f = { x: Int -> |
| val y = x + a |
| use(a) |
| } |
| } |
| --------------------- |
| L0: |
| 1 <START> INIT: in: {} out: {} |
| 2 mark({ val a = 1 val f = { x: Int -> val y = x + a use(a) } }) |
| v(val a = 1) INIT: in: {} out: {} |
| r(1) -> <v0> INIT: in: {} out: {} |
| w(a|<v0>) INIT: in: {} out: {} |
| v(val f = { x: Int -> val y = x + a use(a) }) INIT: in: {} out: {} |
| mark({ x: Int -> val y = x + a use(a) }) INIT: in: {} out: {} |
| jmp?(L2) |
| d({ x: Int -> val y = x + a use(a) }) INIT: in: {} out: {} |
| L2 [after local declaration]: |
| r({ x: Int -> val y = x + a use(a) }) -> <v1> |
| w(f|<v1>) INIT: in: {} out: {} |
| L1: |
| 1 <END> INIT: in: {} out: {} |
| error: |
| <ERROR> |
| sink: |
| <SINK> USE: in: {} out: {} |
| ===================== |
| == anonymous_0 == |
| { x: Int -> |
| val y = x + a |
| use(a) |
| } |
| --------------------- |
| L3: |
| 3 <START> INIT: in: {} out: {} |
| v(x: Int) INIT: in: {} out: {} |
| magic[FAKE_INITIALIZER](x: Int) -> <v0> INIT: in: {} out: {} |
| w(x|<v0>) INIT: in: {} out: {} |
| 4 mark(val y = x + a use(a)) INIT: in: {} out: {} |
| v(val y = x + a) INIT: in: {} out: {} |
| r(x) -> <v1> INIT: in: {} out: {} |
| r(a) -> <v2> |
| mark(x + a) |
| call(x + a, plus|<v1>, <v2>) -> <v3> |
| w(y|<v3>) INIT: in: {} out: {} |
| r(a) -> <v4> INIT: in: {} out: {} |
| mark(use(a)) |
| call(use(a), use|<v4>) -> <v5> |
| 3 ret(*|<v5>) L4 |
| L4: |
| <END> |
| error: |
| <ERROR> |
| sink: |
| <SINK> USE: in: {} out: {} |
| ===================== |
| == use == |
| fun use(vararg a: Any?) = a |
| --------------------- |
| L0: |
| 1 <START> INIT: in: {} out: {} |
| v(vararg a: Any?) INIT: in: {} out: {} |
| magic[FAKE_INITIALIZER](vararg a: Any?) -> <v0> INIT: in: {} out: {} |
| w(a|<v0>) INIT: in: {} out: {} |
| r(a) -> <v1> INIT: in: {} out: {} |
| ret(*|<v1>) L1 |
| L1: |
| <END> |
| error: |
| <ERROR> |
| sink: |
| <SINK> USE: in: {} out: {} |
| ===================== |