| == test == |
| fun test(b: Boolean): (Int) -> Int { |
| if (b) { |
| fun(n: Int) = n + 1 |
| } |
| else { |
| fun(n: Int) = n - 1 |
| } |
| } |
| --------------------- |
| <v0>: Boolean NEW: magic[FAKE_INITIALIZER](b: Boolean) -> <v0> |
| b <v1>: Boolean NEW: r(b) -> <v1> |
| fun(n: Int) = n + 1 <v2>: * NEW: r(fun(n: Int) = n + 1) -> <v2> |
| { fun(n: Int) = n + 1 } <v2>: * COPY |
| fun(n: Int) = n - 1 <v3>: * NEW: r(fun(n: Int) = n - 1) -> <v3> |
| { fun(n: Int) = n - 1 } <v3>: * COPY |
| if (b) { fun(n: Int) = n + 1 } else { fun(n: Int) = n - 1 } <v4>: * NEW: merge(if (b) { fun(n: Int) = n + 1 } else { fun(n: Int) = n - 1 }|<v2>, <v3>) -> <v4> |
| { if (b) { fun(n: Int) = n + 1 } else { fun(n: Int) = n - 1 } } <v4>: * COPY |
| ===================== |
| == anonymous_0 == |
| fun(n: Int) = n + 1 |
| --------------------- |
| <v0>: Int NEW: magic[FAKE_INITIALIZER](n: Int) -> <v0> |
| n <v1>: Int NEW: r(n) -> <v1> |
| 1 <v2>: Int NEW: r(1) -> <v2> |
| n + 1 <v3>: Int NEW: call(n + 1, plus|<v1>, <v2>) -> <v3> |
| ===================== |
| == anonymous_1 == |
| fun(n: Int) = n - 1 |
| --------------------- |
| <v0>: Int NEW: magic[FAKE_INITIALIZER](n: Int) -> <v0> |
| n <v1>: Int NEW: r(n) -> <v1> |
| 1 <v2>: Int NEW: r(1) -> <v2> |
| n - 1 <v3>: Int NEW: call(n - 1, minus|<v1>, <v2>) -> <v3> |
| ===================== |