[Gradle, JS] Fix delegates

#KT-37582 fixed
This commit is contained in:
Ilya Goncharov
2020-03-20 10:27:00 +03:00
parent 6605199ead
commit 41f5a56cb3
@@ -10,17 +10,19 @@ import kotlin.reflect.KProperty
open class ProviderDelegate<out T : Any>(
private val defaultValueProvider: () -> T
) {
protected open val backing: T? = null
operator fun getValue(thisRef: Any?, property: KProperty<*>): T {
return backing ?: defaultValueProvider()
return defaultValueProvider()
}
}
class PropertyDelegate<T : Any>(
defaultValueProvider: () -> T
) : ProviderDelegate<T>(defaultValueProvider) {
override var backing: T? = null
private val defaultValueProvider: () -> T
) {
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) {
backing = value