Pseudocode: Generate fake values for Unit/Nothing-typed expressions

This commit is contained in:
Alexey Sedunov
2014-07-23 12:56:21 +04:00
parent 2d3ac9109b
commit 77bbf8f73b
72 changed files with 851 additions and 592 deletions
+7 -2
View File
@@ -7,6 +7,11 @@ tailRecursive fun foo() {
}
}
---------------------
<v1>: {<: Throwable} NEW: magic[FAKE_INITIALIZER](e: Throwable) -> <v1>
foo() <v0>: Unit NEW: call(foo(), foo) -> <v0>
<v2>: {<: Throwable} NEW: magic[FAKE_INITIALIZER](e: Throwable) -> <v2>
foo() <v0>: Unit NEW: call(foo(), foo) -> <v0>
return foo() !<v1>: *
{ return foo() } !<v1>: * COPY
{ } !<v3>: *
try { return foo() } catch (e: Throwable) { } <v4>: * NEW: merge(try { return foo() } catch (e: Throwable) { }|!<v1>, !<v3>) -> <v4>
{ try { return foo() } catch (e: Throwable) { } } <v4>: * COPY
=====================