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|Stub (chain inference): TypeVariable(_T)|>|(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|Stub (chain inference): TypeVariable(_T)|>|(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())
    }
