blob: c2942bf4533cdae8f8dc851c57963f564931a8fd [file]
// RUN_PIPELINE_TILL: CODEGEN
import kotlin.reflect.KProperty
class FreezableVar<T>(private var value: T) {
operator fun getValue(thisRef: Any, property: KProperty<*>): T = value
operator fun setValue(thisRef: Any, property: KProperty<*>, value: T) {
this.value = value
}
}
class LocalFreezableVar<T>(private var value: T) {
operator fun getValue(thisRef: Nothing?, property: KProperty<*>): T = value
operator fun setValue(thisRef: Nothing?, property: KProperty<*>, value: T) {
this.value = value
}
}
class Test {
var x: Boolean by FreezableVar(true)
var y by FreezableVar("")
}
fun test() {
var x: Boolean by LocalFreezableVar(true)
var y by LocalFreezableVar("")
}
/* GENERATED_FIR_TAGS: assignment, classDeclaration, functionDeclaration, localProperty, nullableType, operator,
primaryConstructor, propertyDeclaration, propertyDelegate, setter, starProjection, stringLiteral, thisExpression,
typeParameter */