Pseudocode: Generate instructions for superclass constructor calls. Consume value of delegate expression in the by-clause

This commit is contained in:
Alexey Sedunov
2014-06-26 20:16:08 +04:00
parent 523beab902
commit 1c75a5f642
17 changed files with 248 additions and 48 deletions
@@ -41,10 +41,11 @@ class TestObjectLiteral {
}
---------------------
<v0>: TestObjectLiteral NEW: magic(obj) -> <v0>
<v2>: TestObjectLiteral NEW: magic(obj) -> <v2>
obj <v1>: * NEW: r(obj|<v0>) -> <v1>
obj <v3>: {<: A} NEW: r(obj|<v2>) -> <v3>
object: A(obj) { { val x = obj } fun foo() { val y = obj } } <v4>: {<: A} NEW: r(object: A(obj) { { val x = obj } fun foo() { val y = obj } }) -> <v4>
<v3>: TestObjectLiteral NEW: magic(obj) -> <v3>
obj <v1>: {<: A} NEW: r(obj|<v0>) -> <v1>
A(obj) <v2>: * NEW: call(A(obj), <init>|<v1>) -> <v2>
obj <v4>: {<: A} NEW: r(obj|<v3>) -> <v4>
object: A(obj) { { val x = obj } fun foo() { val y = obj } } <v5>: {<: A} NEW: r(object: A(obj) { { val x = obj } fun foo() { val y = obj } }) -> <v5>
=====================
== foo ==
fun foo() {
@@ -63,4 +64,4 @@ class TestOther {
x <v1>: Int NEW: r(x|<v0>) -> <v1>
1 <v2>: Int NEW: r(1) -> <v2>
x + 1 <v3>: Int NEW: call(x + 1, plus|<v1>, <v2>) -> <v3>
=====================
=====================