blob: fdf0faf4817eb133672a3a213f33f41485782a15 [file] [log] [blame]
== println ==
fun println(obj: Any?) {}
---------------------
<v0>: * NEW: magic[FAKE_INITIALIZER](obj: Any?) -> <v0>
=====================
== Demo0 ==
class Demo0 {
private val some = object {
fun foo() {
println(state) // Ok
}
}
private var state: Boolean = true
}
---------------------
object { fun foo() { println(state) // Ok } } <v0>: `<no name provided>` NEW: r(object { fun foo() { println(state) // Ok } }) -> <v0>
true <v1>: Boolean NEW: r(true) -> <v1>
=====================
== foo ==
fun foo() {
println(state) // Ok
}
---------------------
<v0>: Demo0 NEW: magic[IMPLICIT_RECEIVER](state) -> <v0>
state <v1>: * NEW: r(state|<v0>) -> <v1>
println(state) <v2>: * NEW: call(println(state), println|<v1>) -> <v2>
{ println(state) // Ok } <v2>: * COPY
=====================
== Demo1 ==
class Demo1 {
private val some = object {
fun foo() {
if (state)
state = true
println(state) // must be initialized
}
}
private var state: Boolean = true
}
---------------------
object { fun foo() { if (state) state = true println(state) // must be initialized } } <v0>: `<no name provided>` NEW: r(object { fun foo() { if (state) state = true println(state) // must be initialized } }) -> <v0>
true <v1>: Boolean NEW: r(true) -> <v1>
=====================
== foo ==
fun foo() {
if (state)
state = true
println(state) // must be initialized
}
---------------------
<v0>: Demo1 NEW: magic[IMPLICIT_RECEIVER](state) -> <v0>
<v2>: Demo1 NEW: magic[IMPLICIT_RECEIVER](state) -> <v2>
<v6>: Demo1 NEW: magic[IMPLICIT_RECEIVER](state) -> <v6>
state <v1>: Boolean NEW: r(state|<v0>) -> <v1>
true <v3>: Boolean NEW: r(true) -> <v3>
state = true !<v4>: *
if (state) state = true <v5>: * NEW: merge(if (state) state = true|!<v4>) -> <v5>
state <v7>: * NEW: r(state|<v6>) -> <v7>
println(state) <v8>: * NEW: call(println(state), println|<v7>) -> <v8>
{ if (state) state = true println(state) // must be initialized } <v8>: * COPY
=====================
== Demo1A ==
class Demo1A {
fun foo() {
if (state)
state = true
println(state) // Ok
}
private var state: Boolean = true
}
---------------------
true <v0>: Boolean NEW: r(true) -> <v0>
=====================
== foo ==
fun foo() {
if (state)
state = true
println(state) // Ok
}
---------------------
<v0>: Demo1A NEW: magic[IMPLICIT_RECEIVER](state) -> <v0>
<v2>: Demo1A NEW: magic[IMPLICIT_RECEIVER](state) -> <v2>
<v6>: Demo1A NEW: magic[IMPLICIT_RECEIVER](state) -> <v6>
state <v1>: Boolean NEW: r(state|<v0>) -> <v1>
true <v3>: Boolean NEW: r(true) -> <v3>
state = true !<v4>: *
if (state) state = true <v5>: * NEW: merge(if (state) state = true|!<v4>) -> <v5>
state <v7>: * NEW: r(state|<v6>) -> <v7>
println(state) <v8>: * NEW: call(println(state), println|<v7>) -> <v8>
{ if (state) state = true println(state) // Ok } <v8>: * COPY
=====================
== Demo2 ==
class Demo2 {
private val some = object {
fun foo() {
if (state)
state = true
else
state = false
println(state) // OK
}
}
private var state: Boolean = true
}
---------------------
object { fun foo() { if (state) state = true else state = false println(state) // OK } } <v0>: `<no name provided>` NEW: r(object { fun foo() { if (state) state = true else state = false println(state) // OK } }) -> <v0>
true <v1>: Boolean NEW: r(true) -> <v1>
=====================
== foo ==
fun foo() {
if (state)
state = true
else
state = false
println(state) // OK
}
---------------------
<v0>: Demo2 NEW: magic[IMPLICIT_RECEIVER](state) -> <v0>
<v2>: Demo2 NEW: magic[IMPLICIT_RECEIVER](state) -> <v2>
<v4>: Demo2 NEW: magic[IMPLICIT_RECEIVER](state) -> <v4>
<v9>: Demo2 NEW: magic[IMPLICIT_RECEIVER](state) -> <v9>
state <v1>: Boolean NEW: r(state|<v0>) -> <v1>
true <v3>: Boolean NEW: r(true) -> <v3>
state = true !<v6>: *
false <v5>: Boolean NEW: r(false) -> <v5>
state = false !<v7>: *
if (state) state = true else state = false <v8>: * NEW: merge(if (state) state = true else state = false|!<v6>, !<v7>) -> <v8>
state <v10>: * NEW: r(state|<v9>) -> <v10>
println(state) <v11>: * NEW: call(println(state), println|<v10>) -> <v11>
{ if (state) state = true else state = false println(state) // OK } <v11>: * COPY
=====================
== Demo3 ==
class Demo3 {
private val some = run {
if (state)
state = true
println(state) // OK
}
private var state: Boolean = true
}
---------------------
<v0>: Demo3 NEW: magic[IMPLICIT_RECEIVER](run { if (state) state = true println(state) // OK }) -> <v0>
{ if (state) state = true println(state) // OK } <v1>: {<: Demo3.() -> Unit} NEW: r({ if (state) state = true println(state) // OK }) -> <v1>
run { if (state) state = true println(state) // OK } <v2>: Unit NEW: call(run { if (state) state = true println(state) // OK }, run|<v0>, <v1>) -> <v2>
true <v3>: Boolean NEW: r(true) -> <v3>
=====================
== anonymous_0 ==
{
if (state)
state = true
println(state) // OK
}
---------------------
<v0>: Demo3 NEW: magic[IMPLICIT_RECEIVER](state) -> <v0>
<v2>: Demo3 NEW: magic[IMPLICIT_RECEIVER](state) -> <v2>
<v6>: Demo3 NEW: magic[IMPLICIT_RECEIVER](state) -> <v6>
state <v1>: Boolean NEW: r(state|<v0>) -> <v1>
true <v3>: Boolean NEW: r(true) -> <v3>
state = true !<v4>: *
if (state) state = true <v5>: * NEW: merge(if (state) state = true|!<v4>) -> <v5>
state <v7>: * NEW: r(state|<v6>) -> <v7>
println(state) <v8>: * NEW: call(println(state), println|<v7>) -> <v8>
if (state) state = true println(state) // OK <v8>: * COPY
=====================
== run ==
fun <T, R> T.run(f: T.() -> R) = f()
---------------------
<v0>: {<: T.() -> R} NEW: magic[FAKE_INITIALIZER](f: T.() -> R) -> <v0>
<v2>: {<: T} NEW: magic[IMPLICIT_RECEIVER](f()) -> <v2>
f <v1>: {<: (T) -> R} NEW: r(f) -> <v1>
f() <v3>: {<: R} NEW: call(f(), invoke|<v1>, <v2>) -> <v3>
=====================
== exec ==
fun <T> exec(f: () -> T): T = f()
---------------------
<v0>: {<: () -> T} NEW: magic[FAKE_INITIALIZER](f: () -> T) -> <v0>
f <v1>: {<: () -> T} NEW: r(f) -> <v1>
f() <v2>: {<: T} NEW: call(f(), invoke|<v1>) -> <v2>
=====================
== Demo4 ==
class Demo4 {
private val some = exec {
if (state)
state = true
println(state) // must be initialized
}
private var state: Boolean = true
}
---------------------
{ if (state) state = true println(state) // must be initialized } <v0>: {<: () -> Unit} NEW: r({ if (state) state = true println(state) // must be initialized }) -> <v0>
exec { if (state) state = true println(state) // must be initialized } <v1>: Unit NEW: call(exec { if (state) state = true println(state) // must be initialized }, exec|<v0>) -> <v1>
true <v2>: Boolean NEW: r(true) -> <v2>
=====================
== anonymous_1 ==
{
if (state)
state = true
println(state) // must be initialized
}
---------------------
<v0>: Demo4 NEW: magic[IMPLICIT_RECEIVER](state) -> <v0>
<v2>: Demo4 NEW: magic[IMPLICIT_RECEIVER](state) -> <v2>
<v6>: Demo4 NEW: magic[IMPLICIT_RECEIVER](state) -> <v6>
state <v1>: Boolean NEW: r(state|<v0>) -> <v1>
true <v3>: Boolean NEW: r(true) -> <v3>
state = true !<v4>: *
if (state) state = true <v5>: * NEW: merge(if (state) state = true|!<v4>) -> <v5>
state <v7>: * NEW: r(state|<v6>) -> <v7>
println(state) <v8>: * NEW: call(println(state), println|<v7>) -> <v8>
if (state) state = true println(state) // must be initialized <v8>: * COPY
=====================
== Demo5 ==
class Demo5 {
private var state: Boolean = true
private val some = object {
fun foo() {
if (state)
state = true
println(state) // OK
}
}
}
---------------------
true <v0>: Boolean NEW: r(true) -> <v0>
object { fun foo() { if (state) state = true println(state) // OK } } <v1>: `<no name provided>` NEW: r(object { fun foo() { if (state) state = true println(state) // OK } }) -> <v1>
=====================
== foo ==
fun foo() {
if (state)
state = true
println(state) // OK
}
---------------------
<v0>: Demo5 NEW: magic[IMPLICIT_RECEIVER](state) -> <v0>
<v2>: Demo5 NEW: magic[IMPLICIT_RECEIVER](state) -> <v2>
<v6>: Demo5 NEW: magic[IMPLICIT_RECEIVER](state) -> <v6>
state <v1>: Boolean NEW: r(state|<v0>) -> <v1>
true <v3>: Boolean NEW: r(true) -> <v3>
state = true !<v4>: *
if (state) state = true <v5>: * NEW: merge(if (state) state = true|!<v4>) -> <v5>
state <v7>: * NEW: r(state|<v6>) -> <v7>
println(state) <v8>: * NEW: call(println(state), println|<v7>) -> <v8>
{ if (state) state = true println(state) // OK } <v8>: * COPY
=====================