package test public open class InnerOfGeneric : java.lang.Object { public constructor InnerOfGeneric() public abstract inner class A : java.lang.Object { public constructor A() public abstract inner class Inner : test.InnerOfGeneric.S { public constructor Inner() public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.MutableIterator? } } public open inner class B : test.InnerOfGeneric.A { public constructor B() public open inner class SubInner : test.InnerOfGeneric.A.Inner { public constructor SubInner() public open override /*1*/ fun iterator(): kotlin.MutableIterator? } } public trait S : java.lang.Object { public abstract fun iterator(): kotlin.MutableIterator? } } package test.InnerOfGeneric { public /*synthesized*/ fun S(/*0*/ function: () -> kotlin.MutableIterator?): test.InnerOfGeneric.S }