Files
kotlin-fork/compiler/testData/ir/irText/firProblems/readWriteProperty.kt.txt
T
2024-02-16 10:19:38 +00:00

78 lines
1.8 KiB
Kotlin
Vendored

class IdeWizard {
var projectTemplate: Int? /* by */
field = <this>.setting<Int, SettingType<Int>>(reference = SettingReference<Int, SettingType<Int>>(t = SettingType<Int>(type = 42::class), v = 42))
get(): Int? {
return <this>.#projectTemplate$delegate.getValue(thisRef = <this>, property = IdeWizard::projectTemplate)
}
set(<set-?>: Int?) {
return <this>.#projectTemplate$delegate.setValue(thisRef = <this>, property = IdeWizard::projectTemplate, value = <set-?>)
}
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
private fun <V : Any, T : SettingType<V>> setting(reference: SettingReference<V, T>): <no name provided><V, T> {
return { // BLOCK
local class <no name provided> : ReadWriteProperty<Any?, V?> {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override operator fun getValue(thisRef: Any?, property: KProperty<*>): V? {
return reference.<get-v>()
}
override operator fun setValue(thisRef: Any?, property: KProperty<*>, value: V?) {
when {
EQEQ(arg0 = value, arg1 = null) -> return Unit
}
reference.<set-t>(<set-?> = SettingType<V>(type = value::class) as T)
reference.<set-v>(<set-?> = value)
}
}
<no name provided>()
}
}
}
class SettingReference<V : Any, T : SettingType<V>> {
var t: T
field = t
get
set
var v: V
field = v
get
set
constructor(t: T, v: V) /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class SettingType<out V : Any> {
val type: KClass<out V>
field = type
get
constructor(type: KClass<out V>) /* primary */ {
super/*Any*/()
/* <init>() */
}
}