Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/delegates/provideDelegate.kt
T
2020-12-16 19:52:30 +03:00

20 lines
518 B
Kotlin
Vendored

import kotlin.reflect.KProperty
class Delegate<T>(var value: T) {
operator fun getValue(thisRef: Any?, property: KProperty<*>): T = value
operator fun setValue(thisRef: Any?, property: KProperty<*>, newValue: T) {
value = newValue
}
}
class DelegateProvider<T>(val value: T) {
operator fun provideDelegate(thisRef: Any?, property: KProperty<*>): Delegate<T> = Delegate(value)
}
fun <T> delegate(value: T): DelegateProvider<T> = DelegateProvider(value)
class A {
val x by delegate(1)
}