58 lines
860 B
Kotlin
Vendored
58 lines
860 B
Kotlin
Vendored
// EXPECTED_REACHABLE_NODES: 1294
|
|
package foo
|
|
|
|
var c0 = 0
|
|
var c1 = 0
|
|
var c2 = 0
|
|
var c3 = 0
|
|
|
|
fun cStr(): String {
|
|
return "${c0}${c1}${c2}${c3}"
|
|
}
|
|
|
|
fun get1(): Int {
|
|
c3++
|
|
return 1
|
|
}
|
|
|
|
class A() {
|
|
var p = 0
|
|
operator fun get(i: Int): Int {
|
|
c1++
|
|
return 0
|
|
}
|
|
|
|
operator fun set(i: Int, value: Int) {
|
|
c2++
|
|
}
|
|
}
|
|
|
|
val a: A = A()
|
|
get() {
|
|
c0++
|
|
return field
|
|
}
|
|
|
|
fun box(): String {
|
|
var d = a[1]
|
|
if (cStr() != "1100") {
|
|
return "Fail: d = a[1], cStr(): ${cStr()}"
|
|
}
|
|
|
|
++a[1]
|
|
if (cStr() != "2310") {
|
|
return "Fail: ++a[1], cStr(): ${cStr()}"
|
|
}
|
|
|
|
--a[1]
|
|
if (cStr() != "3520") {
|
|
return "Fail: --a[1], cStr(): ${cStr()}"
|
|
}
|
|
|
|
++a[get1()]
|
|
if (cStr() != "4731") {
|
|
return "Fail: ++a[get1()], cStr(): ${cStr()}"
|
|
}
|
|
|
|
return "OK"
|
|
} |