FILE: privateToThis.fir.kt
    public final class A<in T> : R|kotlin/Any| {
        public constructor<in T>(t: R|T|): R|A<T>| {
            super<R|kotlin/Any|>()
        }

        private final val t: R|T| = R|<local>/t|
            private get(): R|T|

        private final val i: R|A.B<T>| = this@R|/A|.R|SubstitutionOverride</A.B.B>|()
            private get(): R|A.B<T>|

        public final fun test(): R|kotlin/Unit| {
            lval x: R|T| = this@R|/A|.R|/A.t|
            lval y: R|T| = this@R|/A|.R|/A.t|
        }

        public final fun foo(a: R|A<kotlin/String>|): R|kotlin/Unit| {
            lval x: R|kotlin/String| = R|<local>/a|.R|SubstitutionOverride</A.t: R|kotlin/String|>|
        }

        public final fun bar(a: R|A<*>|): R|kotlin/Unit| {
            R|<local>/a|.R|SubstitutionOverride</A.t: R|CapturedType(*)|>|
        }

        public final inner class B<in Outer(T)> : R|kotlin/Any| {
            public A<T>.constructor(): R|A.B<T>| {
                super<R|kotlin/Any|>()
            }

            public final fun baz(a: R|A<*>|): R|kotlin/Unit| {
                R|<local>/a|.R|SubstitutionOverride</A.i: R|A.B<CapturedType(*)>|>|
            }

        }

    }
    public final class C<in T> : R|kotlin/Any| {
        public constructor<in T>(t: R|T|): R|C<T>| {
            super<R|kotlin/Any|>()
        }

        private final val t: R|T| = R|<local>/t|
            private get(): R|T|

        private final val tt: R|T| = R|<local>/t|
            private get(): R|T|

        public final fun foo(a: R|C<kotlin/String>|): R|kotlin/Unit| {
            lval x: R|kotlin/String| = R|<local>/a|.R|SubstitutionOverride</C.tt: R|kotlin/String|>|
        }

    }
