918a91dbdf
#KT-51248
264 lines
13 KiB
Plaintext
Vendored
264 lines
13 KiB
Plaintext
Vendored
== 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
|
|
=====================
|