edbf360852
The reason is that while there are optimizations for them definition of their state is both rather simple and may be confusing in testData
70 lines
2.4 KiB
Plaintext
Vendored
70 lines
2.4 KiB
Plaintext
Vendored
== foo ==
|
|
fun foo() {
|
|
class A {
|
|
var a : Int
|
|
get() {
|
|
return field
|
|
}
|
|
set(v: Int) {
|
|
field = v
|
|
}
|
|
}
|
|
}
|
|
---------------------
|
|
L0:
|
|
1 <START> INIT: in: {} out: {}
|
|
2 mark({ class A { var a : Int get() { return field } set(v: Int) { field = v } } })
|
|
jmp?(L2)
|
|
v(var a : Int get() { return field } set(v: Int) { field = v }) INIT: in: {} out: {a=D}
|
|
jmp?(L3) INIT: in: {a=D} out: {a=D}
|
|
d(get() { return field }) INIT: in: {a=I?} out: {a=I?}
|
|
L3 [after local declaration]:
|
|
jmp?(L6) INIT: in: {a=D} out: {a=D}
|
|
d(set(v: Int) { field = v }) INIT: in: {a=I?} out: {a=I?}
|
|
L1:
|
|
L2 [after local class]:
|
|
L6 [after local declaration]:
|
|
1 <END> INIT: in: {} out: {}
|
|
error:
|
|
<ERROR>
|
|
sink:
|
|
<SINK> USE: in: {} out: {}
|
|
=====================
|
|
== get_a ==
|
|
get() {
|
|
return field
|
|
}
|
|
---------------------
|
|
L4:
|
|
3 <START> INIT: in: {a=D} out: {a=D}
|
|
4 mark({ return field })
|
|
r(field) -> <v0>
|
|
ret(*|<v0>) L5
|
|
L5:
|
|
3 <END>
|
|
error:
|
|
<ERROR> INIT: in: {} out: {}
|
|
sink:
|
|
<SINK> INIT: in: {a=I?} out: {a=I?} USE: in: {} out: {}
|
|
=====================
|
|
== set_a ==
|
|
set(v: Int) {
|
|
field = v
|
|
}
|
|
---------------------
|
|
L7:
|
|
3 <START> INIT: in: {a=D} out: {a=D}
|
|
v(v: Int) INIT: in: {a=D} out: {a=D}
|
|
magic[FAKE_INITIALIZER](v: Int) -> <v0> INIT: in: {a=D} out: {a=D}
|
|
w(v|<v0>) INIT: in: {a=D} out: {a=D}
|
|
4 mark({ field = v }) INIT: in: {a=D} out: {a=D}
|
|
r(v) -> <v1>
|
|
w(field|<v1>)
|
|
L8:
|
|
3 <END>
|
|
error:
|
|
<ERROR> INIT: in: {} out: {}
|
|
sink:
|
|
<SINK> INIT: in: {a=I?} out: {a=I?} USE: in: {} out: {}
|
|
=====================
|