mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-18 15:54:05 +00:00
The reason is that while there are optimizations for them definition of their state is both rather simple and may be confusing in testData
76 lines
2.8 KiB
Plaintext
Vendored
76 lines
2.8 KiB
Plaintext
Vendored
== foo ==
|
|
fun foo() {
|
|
val a = 1
|
|
val f = { x: Int ->
|
|
val y = x + a
|
|
use(a)
|
|
}
|
|
}
|
|
---------------------
|
|
L0:
|
|
1 <START> INIT: in: {} out: {}
|
|
2 mark({ val a = 1 val f = { x: Int -> val y = x + a use(a) } })
|
|
v(val a = 1) INIT: in: {} out: {}
|
|
r(1) -> <v0> INIT: in: {} out: {}
|
|
w(a|<v0>) INIT: in: {} out: {}
|
|
v(val f = { x: Int -> val y = x + a use(a) }) INIT: in: {} out: {}
|
|
mark({ x: Int -> val y = x + a use(a) }) INIT: in: {} out: {}
|
|
jmp?(L2)
|
|
d({ x: Int -> val y = x + a use(a) }) INIT: in: {} out: {}
|
|
L2 [after local declaration]:
|
|
r({ x: Int -> val y = x + a use(a) }) -> <v1>
|
|
w(f|<v1>) INIT: in: {} out: {}
|
|
L1:
|
|
1 <END> INIT: in: {} out: {}
|
|
error:
|
|
<ERROR>
|
|
sink:
|
|
<SINK> USE: in: {} out: {}
|
|
=====================
|
|
== anonymous_0 ==
|
|
{ x: Int ->
|
|
val y = x + a
|
|
use(a)
|
|
}
|
|
---------------------
|
|
L3:
|
|
3 <START> INIT: in: {} out: {}
|
|
v(x: Int) INIT: in: {} out: {}
|
|
magic[FAKE_INITIALIZER](x: Int) -> <v0> INIT: in: {} out: {}
|
|
w(x|<v0>) INIT: in: {} out: {}
|
|
4 mark(val y = x + a use(a)) INIT: in: {} out: {}
|
|
v(val y = x + a) INIT: in: {} out: {}
|
|
r(x) -> <v1> INIT: in: {} out: {}
|
|
r(a) -> <v2>
|
|
mark(x + a)
|
|
call(x + a, plus|<v1>, <v2>) -> <v3>
|
|
w(y|<v3>) INIT: in: {} out: {}
|
|
r(a) -> <v4> INIT: in: {} out: {}
|
|
mark(use(a))
|
|
call(use(a), use|<v4>) -> <v5>
|
|
3 ret(*|<v5>) L4
|
|
L4:
|
|
<END>
|
|
error:
|
|
<ERROR>
|
|
sink:
|
|
<SINK> USE: in: {} out: {}
|
|
=====================
|
|
== use ==
|
|
fun use(vararg a: Any?) = a
|
|
---------------------
|
|
L0:
|
|
1 <START> INIT: in: {} out: {}
|
|
v(vararg a: Any?) INIT: in: {} out: {}
|
|
magic[FAKE_INITIALIZER](vararg a: Any?) -> <v0> INIT: in: {} out: {}
|
|
w(a|<v0>) INIT: in: {} out: {}
|
|
r(a) -> <v1> INIT: in: {} out: {}
|
|
ret(*|<v1>) L1
|
|
L1:
|
|
<END>
|
|
error:
|
|
<ERROR>
|
|
sink:
|
|
<SINK> USE: in: {} out: {}
|
|
=====================
|