class A : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } } class B : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } override fun foo(vararg a: String?) { } } abstract class C : Java2 { constructor() /* primary */ { super/*Any*/() /* () */ } } class D : Java2 { constructor() /* primary */ { super/*Any*/() /* () */ } override fun foo(vararg a: Any) { } } abstract class E : KotlinInterface2 { constructor() /* primary */ { super/*Any*/() /* () */ } } class F : KotlinInterface2 { constructor() /* primary */ { super/*Any*/() /* () */ } override fun foo(vararg a: Any) { } } interface KotlinInterface { abstract fun foo(vararg a: Any) } interface KotlinInterface2 : Java2 { } fun test(a: A, b: B, c: C, d: D, e: E, f: F) { a.foo(a = ["", "1"]) a.foo(a = [null]) b.foo(a = ["", "1"]) b.foo(a = [null]) c.foo(a = ["", "1"]) d.foo(a = ["", "1"]) e.foo(a = ["", "1"]) f.foo(a = ["", "1"]) }