Files
kotlin-fork/js/js.translator/testData/box/expression/misc/KT-740-2.kt
T
2018-09-12 09:49:25 +03:00

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"
}