Control-Flow: Assign pseudo-values to local functions (except those
declared directly in the block)
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
== 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>
|
||||
=====================
|
||||
Reference in New Issue
Block a user