// 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(){} // Public signature: /A.foo|-1041209573719867811[0] // Public signature debug description: foo(){} /* fake */ override fun foo(): 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(){} // Public signature: /B.foo|-1041209573719867811[0] // Public signature debug description: foo(){} override fun foo(): Unit } // CHECK: // Mangled name: C // Public signature: /C|null[0] class C : Java1, KotlinInterface { // CHECK: // Mangled name: C#(){} // Public signature: /C.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: C#foo(){} // Public signature: /C.foo|-1041209573719867811[0] // Public signature debug description: foo(){} override fun foo(): Unit } // CHECK: // Mangled name: KotlinInterface // Public signature: /KotlinInterface|null[0] interface KotlinInterface { // CHECK: // Mangled name: KotlinInterface#foo(){} // Public signature: /KotlinInterface.foo|-1041209573719867811[0] // Public signature debug description: foo(){} abstract fun foo(): Unit } // CHECK: // Mangled name: #test(A;B;C){} // Public signature: /test|-4981009800298118531[0] // Public signature debug description: test(A;B;C){} fun test(a: A, b: B, c: C): Unit