Files
kotlin-fork/js/js.translator/testData/expression/misc/cases/KT-740-2.kt
T
2014-03-11 20:04:00 +04:00

57 lines
805 B
Kotlin

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
fun get(i: Int): Int {
c1++
return 0
}
fun set(i: Int, value: Int) {
c2++
}
}
val a: A = A()
get() {
c0++
return $a
}
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"
}