// CHECK: // Mangled name: A // Public signature: /A|null[0] class A : Java1, Java2 { // CHECK: // Mangled name: A#(){} // Public signature: /A.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: A#foo(kotlin.Array?...){} // Public signature: /A.foo|-7104783452449575467[0] // Public signature debug description: foo(kotlin.Array?...){} /* fake */ override fun foo(vararg a: T?): Unit } // CHECK: // Mangled name: B // Public signature: /B|null[0] class B : Java1, Java2 { // CHECK: // Mangled name: B#(){} // Public signature: /B.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: B#foo(kotlin.Array...){} // Public signature: /B.foo|2066209679093709025[0] // Public signature debug description: foo(kotlin.Array...){} override fun foo(vararg a: T): Unit } // CHECK: // Mangled name: C // Public signature: /C|null[0] abstract class C : Java2, KotlinInterface { // CHECK: // Mangled name: C#(){} // Public signature: /C.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: C#foo(kotlin.Array?...){} // Public signature: /C.foo|-7104783452449575467[0] // Public signature debug description: foo(kotlin.Array?...){} abstract /* fake */ override fun foo(vararg a: T?): Unit } // CHECK: // Mangled name: D // Public signature: /D|null[0] class D : Java2, KotlinInterface { // CHECK: // Mangled name: D#(){} // Public signature: /D.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: D#foo(kotlin.Array...){} // Public signature: /D.foo|2066209679093709025[0] // Public signature debug description: foo(kotlin.Array...){} override fun foo(vararg a: T): Unit } // CHECK: // Mangled name: E // Public signature: /E|null[0] class E : Java1, Java2 { // CHECK: // Mangled name: E#(){} // Public signature: /E.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: E#foo(kotlin.Array?...){} // Public signature: /E.foo|-8810383277274806385[0] // Public signature debug description: foo(kotlin.Array?...){} /* fake */ override fun foo(vararg a: Int?): Unit } // CHECK: // Mangled name: KotlinInterface // Public signature: /KotlinInterface|null[0] interface KotlinInterface { // CHECK: // Mangled name: KotlinInterface#foo(kotlin.Array...){} // Public signature: /KotlinInterface.foo|2066209679093709025[0] // Public signature debug description: foo(kotlin.Array...){} abstract fun foo(vararg a: T): Unit } // CHECK: // Mangled name: #test(A;B;C;D;E){} // Public signature: /test|7222995259622147940[0] // Public signature debug description: test(A;B;C;D;E){} fun test(a: A, b: B, c: C, d: D, e: E): Unit