package test internal abstract class A { /*primary*/ public constructor A() internal abstract fun foo(): kotlin.Unit } internal open class B : test.A { /*primary*/ public constructor B() internal open override /*1*/ fun foo(): kotlin.Unit } internal final class C : test.A, test.X { /*primary*/ public constructor C() internal open override /*1*/ /*fake_override*/ fun bar(): kotlin.Unit internal open override /*2*/ fun foo(): kotlin.Unit } internal final class D : test.B, test.X { /*primary*/ public constructor D(/*0*/ c: test.C) internal final val c: test.C internal final fun (): test.C internal open override /*1*/ /*delegation*/ fun bar(): kotlin.Unit internal open override /*2*/ /*fake_override*/ fun foo(): kotlin.Unit } internal trait X : test.A { internal open fun bar(): kotlin.Unit internal abstract override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit }