// -- Module: -- package package p { public trait G1 { public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } public trait G2 { public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } } // -- Module: -- package package p { public trait B { public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public abstract fun foo(/*0*/ a: p.G1, /*1*/ b: p.G2): p.B? public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } public trait G1 { // -- Module: -- } public trait G2 { // -- Module: -- } } // -- Module: -- package package p { public trait B { // -- Module: -- } public trait C : p.B { public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public abstract override /*1*/ fun foo(/*0*/ a: p.G1, /*1*/ b: p.G2): p.B? public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } public trait G1 { // -- Module: -- } public trait G2 { // -- Module: -- } } // -- Module: -- package package p { public trait B { public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public abstract fun foo(/*0*/ a: p.G1, /*1*/ b: p.G2): p.B? public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } public trait G1 { // -- Module: -- } public trait G2 { // -- Module: -- } } // -- Module: -- package internal fun test(/*0*/ b: p.B?, /*1*/ a: p.G1, /*2*/ b1: p.G2): kotlin.Unit package p { public trait B { // -- Module: -- } public trait C : p.B { // -- Module: -- } public trait G1 { // -- Module: -- } public trait G2 { // -- Module: -- } }