blob: 8a7573360a2767b7f9048676a5544fec65215479 [file]
fun <T> eval(fn: () -> T) = fn()
class A {
var result: Int = 0;
private val Int.times3: Int
get() = this * 3
private var Int.times: Int
get() = this * 4
set(s: Int) {
result = this * s
}
fun test(p: Int):Int {
return eval { p.times3 }
}
fun test2(p: Int, s: Int):Int {
eval { p.times = s }
return result
}
}
fun box() : String {
var result = A().test(3);
if (result != 9) return "fail1: $result"
result = A().test2(2, 4);
if (result != 8) return "fail2: $result"
return "OK"
}