// MODULE: separate // MODULE: main // FILE: test.kt class A : Java2 { constructor() /* primary */ { super/*Java2*/() /* () */ } } class B : Java2 { val a: Int field = 3 get constructor() /* primary */ { super/*Java2*/() /* () */ } override fun foo() { } } class C : Java4 { constructor() /* primary */ { super/*Java4*/() /* () */ } } class D : Java4 { val a: Int field = 3 get constructor() /* primary */ { super/*Java4*/() /* () */ } override fun foo() { } } class E : Java6 { constructor() /* primary */ { super/*Java6*/() /* () */ } } class F : Java6 { val a: Int field = 3 get constructor() /* primary */ { super/*Java6*/() /* () */ } override fun foo() { } } class G : Java7 { constructor() /* primary */ { super/*Java7*/() /* () */ } } class H : Java7 { val a: Int field = 3 get constructor() /* primary */ { super/*Java7*/() /* () */ } override fun foo() { } } class I : Java8 { constructor() /* primary */ { super/*Java8*/() /* () */ } } open class KotlinClass : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } } open class KotlinClass2 : Java3 { constructor() /* primary */ { super/*Java3*/() /* () */ } } open class KotlinClass3 : Java5 { constructor() /* primary */ { super/*Java5*/() /* () */ } } open class KotlinClass4 : JavaSeparate1 { constructor() /* primary */ { super/*JavaSeparate1*/() /* () */ } } open class KotlinClass5 : JavaSeparate2 { constructor() /* primary */ { super/*JavaSeparate2*/() /* () */ } } fun test(a: A, b: B, c: C, d: D, e: E, h: H) { a(super).#a /*~> Unit */ a.foo() b(super).#a /*~> Unit */ b.foo() c(super).#a /*~> Unit */ c.foo() d.foo() e(super).#a /*~> Unit */ e.foo() h(super).#a /*~> Unit */ h.foo() }