Files
kotlin/compiler/testData/codegen/box/operatorConventions/incDecOnObject.kt
2013-10-31 16:48:24 +04:00

41 lines
787 B
Kotlin

class X(var value: Long)
fun X.inc(): X {
this.value++
return this
}
fun X.dec(): X {
this.value--
return this
}
class Z {
public var counter: Int = 0;
public var prop: X = X(0)
get() {
counter++; return $prop
}
set(a: X) {
counter++
$prop = a;
}
}
fun box(): String {
var z = Z()
z.prop++
if (z.counter != 2) return "fail in postfix increment: ${z.counter} != 2"
if (z.prop.value != 1.toLong()) return "fail in postfix increment: ${z.prop.value} != 1"
z = Z()
z.prop--
if (z.counter != 2) return "fail in postfix decrement: ${z.counter} != 2"
if (z.prop.value != -1.toLong()) return "fail in postfix decrement: ${z.prop.value} != -1"
return "OK"
}