class A : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } } class B : Java2 { constructor() /* primary */ { super/*Java2*/() /* () */ } } class C : Java3 { constructor() /* primary */ { super/*Java3*/() /* () */ } } class D : Java1, Java4 { constructor() /* primary */ { super/*Java1*/() /* () */ } } abstract class E : Java1, KotlinInterface { constructor() /* primary */ { super/*Java1*/() /* () */ } } class F : Java1, KotlinInterface { override val a: Int field = a override get override val b: Int field = b override get override val c: Int field = c override get override val d: Int field = d override get constructor(a: Int, b: Int, c: Int, d: Int) /* primary */ { super/*Java1*/() /* () */ } } open class KotlinClass : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } } interface KotlinInterface { abstract val a: Int abstract get abstract val b: Int abstract get abstract val c: Int abstract get abstract val d: Int abstract get } fun test(a: A, b: B, c: C, d: D, e: E, f: F) { a.#a /*~> Unit */ a.#b /*~> Unit */ a.#c /*~> Unit */ a.#d /*~> Unit */ b.#a /*~> Unit */ b.#b /*~> Unit */ b.#c /*~> Unit */ b.#d /*~> Unit */ c.#a /*~> Unit */ c.#b /*~> Unit */ c.#c /*~> Unit */ c.#d /*~> Unit */ d.#a /*~> Unit */ d.#b /*~> Unit */ d.#c /*~> Unit */ d.#d /*~> Unit */ e.#a /*~> Unit */ e.#b /*~> Unit */ e.#c /*~> Unit */ e.#d /*~> Unit */ f.() /*~> Unit */ f.() /*~> Unit */ f.() /*~> Unit */ f.() /*~> Unit */ }