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(super).#a /*~> Unit */ a(super).#b /*~> Unit */ a(super).#c /*~> Unit */ a(super).#d /*~> Unit */ b(super).#a /*~> Unit */ b(super).#b /*~> Unit */ b(super).#c /*~> Unit */ b(super).#d /*~> Unit */ c(super).#a /*~> Unit */ c(super).#b /*~> Unit */ c(super).#c /*~> Unit */ c(super).#d /*~> Unit */ d(super).#a /*~> Unit */ d(super).#b /*~> Unit */ d(super).#c /*~> Unit */ d(super).#d /*~> Unit */ e(super).#a /*~> Unit */ e(super).#b /*~> Unit */ e(super).#c /*~> Unit */ e(super).#d /*~> Unit */ f(super).#a /*~> Unit */ f(super).#b /*~> Unit */ f(super).#c /*~> Unit */ f(super).#d /*~> Unit */ }