Files
kotlin-fork/compiler/testData/codegen/box/delegatedProperty/simpleVar.kt
T
2024-02-26 13:38:49 +00:00

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"
}