KT element: KtClass
KT element text:
public open class Outer<T> public constructor() {
    public final fun createInner(): Outer<T>.Inner { /* compiled code */ }

    public final fun createInner2(): Outer<T>.Nested2<kotlin.Short>.Inner2<kotlin.Int> { /* compiled code */ }

    public final fun createInner3(): Outer.Nested3<kotlin.Short>.Inner3<kotlin.Int> { /* compiled code */ }

    public final inner class Inner public constructor() {
    }

    public final inner class Nested2<U> public constructor() {
        public final inner class Inner2<V> public constructor() {
        }
    }

    public final class Nested3<U> public constructor() {
        public final inner class Inner3<V> public constructor() {
        }
    }
}
FIR element: FirRegularClassImpl
FIR source kind: KtRealSourceElementKind

FIR element rendered:
public open [ResolvedTo(BODY_RESOLVE)] class Outer<[ResolvedTo(BODY_RESOLVE)] T> : R|kotlin/Any| {
    public final inner [ResolvedTo(BODY_RESOLVE)] class Inner<[ResolvedTo(BODY_RESOLVE)] Outer(T)> : R|kotlin/Any| {
        public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Inner] Outer<T>.constructor(): R|Outer.Inner<T>|

    }

    public final inner [ResolvedTo(BODY_RESOLVE)] class Nested2<[ResolvedTo(BODY_RESOLVE)] U, [ResolvedTo(BODY_RESOLVE)] Outer(T)> : R|kotlin/Any| {
        public final inner [ResolvedTo(BODY_RESOLVE)] class Inner2<[ResolvedTo(BODY_RESOLVE)] V, [ResolvedTo(BODY_RESOLVE)] Outer(U), [ResolvedTo(BODY_RESOLVE)] Outer(T)> : R|kotlin/Any| {
            public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Inner2] Outer.Nested2<U, T>.constructor<[ResolvedTo(BODY_RESOLVE)] V>(): R|Outer.Nested2.Inner2<V, U, T>|

        }

        public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Nested2] Outer<T>.constructor<[ResolvedTo(BODY_RESOLVE)] U>(): R|Outer.Nested2<U, T>|

    }

    public final [ResolvedTo(BODY_RESOLVE)] class Nested3<[ResolvedTo(BODY_RESOLVE)] U> : R|kotlin/Any| {
        public final inner [ResolvedTo(BODY_RESOLVE)] class Inner3<[ResolvedTo(BODY_RESOLVE)] V, [ResolvedTo(BODY_RESOLVE)] Outer(U)> : R|kotlin/Any| {
            public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Inner3] Outer.Nested3<U>.constructor<[ResolvedTo(BODY_RESOLVE)] V>(): R|Outer.Nested3.Inner3<V, U>|

        }

        public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Nested3] constructor<[ResolvedTo(BODY_RESOLVE)] U>(): R|Outer.Nested3<U>|

    }

    public final [ResolvedTo(BODY_RESOLVE)] fun createInner(): R|Outer.Inner<T>|

    public final [ResolvedTo(BODY_RESOLVE)] fun createInner2(): R|Outer.Nested2.Inner2<kotlin/Int, kotlin/Short, T>|

    public final [ResolvedTo(BODY_RESOLVE)] fun createInner3(): R|Outer.Nested3.Inner3<kotlin/Int, kotlin/Short>|

    public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Outer] constructor<[ResolvedTo(BODY_RESOLVE)] T>(): R|Outer<T>|

}
