38 lines
1.6 KiB
Plaintext
Vendored
38 lines
1.6 KiB
Plaintext
Vendored
== A ==
|
|
interface A {
|
|
fun foo() : Int
|
|
}
|
|
---------------------
|
|
=====================
|
|
== foo ==
|
|
fun foo() : Int
|
|
---------------------
|
|
=====================
|
|
== B ==
|
|
class B : A {
|
|
override fun foo() = 10
|
|
}
|
|
---------------------
|
|
=====================
|
|
== foo ==
|
|
override fun foo() = 10
|
|
---------------------
|
|
10 <v0>: Int NEW: r(10) -> <v0>
|
|
=====================
|
|
== foo ==
|
|
fun foo(b: B) : Int {
|
|
val o = object : A by b {}
|
|
return o.foo()
|
|
}
|
|
---------------------
|
|
<v0>: B NEW: magic[FAKE_INITIALIZER](b: B) -> <v0>
|
|
<v2>: * NEW: magic[VALUE_CONSUMER](A by b|<v1>) -> <v2>
|
|
b <v1>: {<: A} NEW: r(b) -> <v1>
|
|
object : A by b {} <v3>: <no name provided> NEW: r(object : A by b {}) -> <v3>
|
|
o <v4>: {<: A} NEW: r(o) -> <v4>
|
|
foo() <v5>: Int NEW: call(foo(), foo|<v4>) -> <v5>
|
|
o.foo() <v5>: Int COPY
|
|
return o.foo() !<v6>: *
|
|
{ val o = object : A by b {} return o.foo() } !<v6>: * COPY
|
|
=====================
|