abstract class C : I { constructor() /* primary */ { super/*Any*/() /* () */ } abstract override fun foo() } abstract class D : C, J { constructor() /* primary */ { super/*C*/() /* () */ } } class E : D { constructor() /* primary */ { super/*D*/() /* () */ } override fun foo() { } } interface I : II { } interface II { fun foo() { } } fun foo(x: I) { x.foo() }