[Gradle, JS] Fix delegates
#KT-37582 fixed
This commit is contained in:
+8
-6
@@ -10,17 +10,19 @@ import kotlin.reflect.KProperty
|
|||||||
open class ProviderDelegate<out T : Any>(
|
open class ProviderDelegate<out T : Any>(
|
||||||
private val defaultValueProvider: () -> T
|
private val defaultValueProvider: () -> T
|
||||||
) {
|
) {
|
||||||
protected open val backing: T? = null
|
|
||||||
|
|
||||||
operator fun getValue(thisRef: Any?, property: KProperty<*>): T {
|
operator fun getValue(thisRef: Any?, property: KProperty<*>): T {
|
||||||
return backing ?: defaultValueProvider()
|
return defaultValueProvider()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class PropertyDelegate<T : Any>(
|
class PropertyDelegate<T : Any>(
|
||||||
defaultValueProvider: () -> T
|
private val defaultValueProvider: () -> T
|
||||||
) : ProviderDelegate<T>(defaultValueProvider) {
|
) {
|
||||||
override var backing: T? = null
|
private var backing: T? = null
|
||||||
|
|
||||||
|
operator fun getValue(thisRef: Any?, property: KProperty<*>): T {
|
||||||
|
return backing ?: defaultValueProvider()
|
||||||
|
}
|
||||||
|
|
||||||
operator fun setValue(thisRef: Any?, property: KProperty<*>, value: T) {
|
operator fun setValue(thisRef: Any?, property: KProperty<*>, value: T) {
|
||||||
backing = value
|
backing = value
|
||||||
|
|||||||
Reference in New Issue
Block a user