package test public trait InheritedSameAdaptersWithSubstitution : java.lang.Object { public trait Sub : test.InheritedSameAdaptersWithSubstitution.Super1, test.InheritedSameAdaptersWithSubstitution.Super2Substituted { public final override /*2*/ /*fake_override*/ fun foo(/*0*/ p0: ((kotlin.String, kotlin.String) -> kotlin.Int)?): kotlin.Unit public abstract override /*2*/ /*fake_override*/ fun foo(/*0*/ p0: java.util.Comparator?): kotlin.Unit } public trait Super1 : java.lang.Object { public final /*synthesized*/ fun foo(/*0*/ p0: ((kotlin.String, kotlin.String) -> kotlin.Int)?): kotlin.Unit public abstract fun foo(/*0*/ p0: java.util.Comparator?): kotlin.Unit } public trait Super2 : java.lang.Object { public final /*synthesized*/ fun foo(/*0*/ p0: ((T, T) -> kotlin.Int)?): kotlin.Unit public abstract fun foo(/*0*/ p0: java.util.Comparator?): kotlin.Unit } public trait Super2Substituted : test.InheritedSameAdaptersWithSubstitution.Super2 { public final override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: ((kotlin.String, kotlin.String) -> kotlin.Int)?): kotlin.Unit public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: java.util.Comparator?): kotlin.Unit } } package test.InheritedSameAdaptersWithSubstitution { public /*synthesized*/ fun Sub(/*0*/ function: (java.util.Comparator?) -> kotlin.Unit): test.InheritedSameAdaptersWithSubstitution.Sub public /*synthesized*/ fun Super1(/*0*/ function: (java.util.Comparator?) -> kotlin.Unit): test.InheritedSameAdaptersWithSubstitution.Super1 public /*synthesized*/ fun Super2(/*0*/ function: (java.util.Comparator?) -> kotlin.Unit): test.InheritedSameAdaptersWithSubstitution.Super2 public /*synthesized*/ fun Super2Substituted(/*0*/ function: (java.util.Comparator?) -> kotlin.Unit): test.InheritedSameAdaptersWithSubstitution.Super2Substituted }