Pseudocode: Generate magics for cast expressions

This commit is contained in:
Alexey Sedunov
2014-07-18 21:02:45 +04:00
parent 00dd1dbb0b
commit c32d112e67
7 changed files with 64 additions and 1 deletions
@@ -0,0 +1,16 @@
== foo ==
fun foo(a: Any) {
a : String
a as String
a as? String
}
---------------------
<v0>: {<: Any} NEW: magic[FAKE_INITIALIZER](a: Any) -> <v0>
a <v1>: * NEW: r(a) -> <v1>
a : String <v2>: * NEW: magic[CAST](a : String|<v1>) -> <v2>
a <v3>: * NEW: r(a) -> <v3>
a as String <v4>: * NEW: magic[CAST](a as String|<v3>) -> <v4>
a <v5>: * NEW: r(a) -> <v5>
a as? String <v6>: * NEW: magic[CAST](a as? String|<v5>) -> <v6>
{ a : String a as String a as? String } <v6>: * COPY
=====================