febac0dd5f
^KT-65979
47 lines
866 B
Kotlin
Vendored
47 lines
866 B
Kotlin
Vendored
/*
|
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
|
* that can be found in the LICENSE file.
|
|
*/
|
|
// JVM_ABI_K1_K2_DIFF: KT-63864
|
|
// 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"
|
|
} |