034671ad78
See the comment at updateSubstitutedMemberIfReceiverContainsTypeVariable It became necessary after delegate inference is rewritten, since before that happened, stub types were being left there and FIR2IR handled them accidentally properly because stub types are equal to anything. But that wasn't really correct even there because stub types are not intended to leak out of the FIR ^KT-61060
64 lines
3.0 KiB
Plaintext
Vendored
64 lines
3.0 KiB
Plaintext
Vendored
FILE: delegateInference.kt
|
|
public final class FreezableVar<T> : R|kotlin/Any| {
|
|
public constructor<T>(value: R|T|): R|FreezableVar<T>| {
|
|
super<R|kotlin/Any|>()
|
|
}
|
|
|
|
private final var value: R|T| = R|<local>/value|
|
|
private get(): R|T|
|
|
private set(value: R|T|): R|kotlin/Unit|
|
|
|
|
public final operator fun getValue(thisRef: R|kotlin/Any|, property: R|kotlin/reflect/KProperty<*>|): R|T| {
|
|
^getValue this@R|/FreezableVar|.R|/FreezableVar.value|
|
|
}
|
|
|
|
public final operator fun setValue(thisRef: R|kotlin/Any|, property: R|kotlin/reflect/KProperty<*>|, value: R|T|): R|kotlin/Unit| {
|
|
this@R|/FreezableVar|.R|/FreezableVar.value| = R|<local>/value|
|
|
}
|
|
|
|
}
|
|
public final class LocalFreezableVar<T> : R|kotlin/Any| {
|
|
public constructor<T>(value: R|T|): R|LocalFreezableVar<T>| {
|
|
super<R|kotlin/Any|>()
|
|
}
|
|
|
|
private final var value: R|T| = R|<local>/value|
|
|
private get(): R|T|
|
|
private set(value: R|T|): R|kotlin/Unit|
|
|
|
|
public final operator fun getValue(thisRef: R|kotlin/Nothing?|, property: R|kotlin/reflect/KProperty<*>|): R|T| {
|
|
^getValue this@R|/LocalFreezableVar|.R|/LocalFreezableVar.value|
|
|
}
|
|
|
|
public final operator fun setValue(thisRef: R|kotlin/Nothing?|, property: R|kotlin/reflect/KProperty<*>|, value: R|T|): R|kotlin/Unit| {
|
|
this@R|/LocalFreezableVar|.R|/LocalFreezableVar.value| = R|<local>/value|
|
|
}
|
|
|
|
}
|
|
public final class Test : R|kotlin/Any| {
|
|
public constructor(): R|Test| {
|
|
super<R|kotlin/Any|>()
|
|
}
|
|
|
|
public final var x: R|kotlin/Boolean|by R|/FreezableVar.FreezableVar|<R|kotlin/Boolean|>(Boolean(true))
|
|
public get(): R|kotlin/Boolean| {
|
|
^ this@R|/Test|.D|/Test.x|.R|SubstitutionOverride</FreezableVar.getValue: R|kotlin/Boolean|>|(this@R|/Test|, ::R|/Test.x|)
|
|
}
|
|
public set(<set-?>: R|kotlin/Boolean|): R|kotlin/Unit| {
|
|
^ this@R|/Test|.D|/Test.x|.R|SubstitutionOverride</FreezableVar.setValue: R|kotlin/Unit|>|(this@R|/Test|, ::R|/Test.x|, R|<local>/x|)
|
|
}
|
|
|
|
public final var y: R|kotlin/String|by R|/FreezableVar.FreezableVar|<R|kotlin/String|>(String())
|
|
public get(): R|kotlin/String| {
|
|
^ this@R|/Test|.D|/Test.y|.R|SubstitutionOverride</FreezableVar.getValue: R|kotlin/String|>|(this@R|/Test|, ::R|/Test.y|)
|
|
}
|
|
public set(<set-?>: R|kotlin/String|): R|kotlin/Unit| {
|
|
^ this@R|/Test|.D|/Test.y|.R|SubstitutionOverride</FreezableVar.setValue: R|kotlin/Unit|>|(this@R|/Test|, ::R|/Test.y|, R|<local>/y|)
|
|
}
|
|
|
|
}
|
|
public final fun test(): R|kotlin/Unit| {
|
|
lvar x: R|kotlin/Boolean|by R|/LocalFreezableVar.LocalFreezableVar|<R|kotlin/Boolean|>(Boolean(true))
|
|
lvar y: R|kotlin/String|by R|/LocalFreezableVar.LocalFreezableVar|<R|kotlin/String|>(String())
|
|
}
|