package test public interface A { public abstract fun foo(): T } public interface B : test.A { public abstract /*fake_override*/ fun foo(): kotlin.Int } public abstract class C : test.B { public constructor C() public abstract /*fake_override*/ fun foo(): kotlin.Int } public open class D : test.C { public constructor D() public open fun foo(): kotlin.Int } public/*package*/ open class ExtendsD : test.D { public/*package*/ constructor ExtendsD() public open /*fake_override*/ fun foo(): kotlin.Int public/*package*/ open fun test(): kotlin.Unit }