blob: 7a63a9ede72803aaab824e9de32bd4713bc7a2db [file]
// WITH_STDLIB
import kotlin.test.*
import kotlin.reflect.KProperty
val sb = StringBuilder()
class Delegate {
var f: Int = 42
operator fun getValue(receiver: Any?, p: KProperty<*>): Int {
sb.appendLine("get ${p.name}")
return f
}
operator fun setValue(receiver: Any?, p: KProperty<*>, value: Int) {
sb.appendLine("set ${p.name}")
f = value
}
}
class C {
var x: Int by Delegate()
}
fun box(): String {
val c = C()
sb.appendLine(c.x)
c.x = 117
sb.appendLine(c.x)
assertEquals("""
get x
42
set x
get x
117
""".trimIndent(), sb.toString())
return "OK"
}