// CHECK: // Mangled name: MyAnnotation // Public signature: /MyAnnotation|null[0] open annotation class MyAnnotation : Annotation { // CHECK: // Mangled name: MyAnnotation#(){} // Public signature: /MyAnnotation.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ } // CHECK: // Mangled name: A // Public signature: /A|null[0] open class A { // CHECK: // Mangled name: A{}a // Public signature: /A.a|-1200697420457237799[0] // Public signature debug description: {}a @MyAnnotation open val a: Int // CHECK JVM_IR: // Mangled name: A#(){}kotlin.Int // Public signature: /A.a.|4232747788241509192[0] // Public signature debug description: (){}kotlin.Int open get // CHECK: // Mangled name: A#(kotlin.Int){} // Public signature: /A.|-5182794243525578284[0] // Public signature debug description: (kotlin.Int){} @MyAnnotation constructor(i: Int) // CHECK: // Mangled name: A#foo(kotlin.Int){} // Public signature: /A.foo|-104159190164110731[0] // Public signature debug description: foo(kotlin.Int){} @MyAnnotation open fun foo(@MyAnnotation a: Int): Unit // CHECK: // Mangled name: A{}b // Public signature: /A.b|772347207915745207[0] // Public signature debug description: {}b open var b: Int // CHECK JVM_IR: // Mangled name: A#(){}kotlin.Int // Public signature: /A.b.|-2902143276921469679[0] // Public signature debug description: (){}kotlin.Int @MyAnnotation open get(): Int // CHECK: // Mangled name: A#(kotlin.Int){} // Public signature: /A.b.|393614520529327556[0] // Public signature debug description: (kotlin.Int){} @MyAnnotation open set(value: Int): Unit } // CHECK: // Mangled name: B // Public signature: /B|null[0] class B : Java1 { // CHECK: // Mangled name: B#(){} // Public signature: /B.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: B#foo(kotlin.Int){} // Public signature: /B.foo|-104159190164110731[0] // Public signature debug description: foo(kotlin.Int){} @MyAnnotation /* fake */ override fun foo(@MyAnnotation a: Int): Unit // CHECK: // Mangled name: B{}a // Public signature: /B.a|-1200697420457237799[0] // Public signature debug description: {}a @MyAnnotation /* fake */ override val a: Int // CHECK JVM_IR: // Mangled name: B#(){}kotlin.Int // Public signature: /B.a.|4232747788241509192[0] // Public signature debug description: (){}kotlin.Int @MyAnnotation /* fake */ override get(): Int // CHECK: // Mangled name: B{}b // Public signature: /B.b|772347207915745207[0] // Public signature debug description: {}b /* fake */ override var b: Int // CHECK JVM_IR: // Mangled name: B#(){}kotlin.Int // Public signature: /B.b.|-2902143276921469679[0] // Public signature debug description: (){}kotlin.Int @MyAnnotation /* fake */ override get(): Int // CHECK: // Mangled name: B#(kotlin.Int){} // Public signature: /B.b.|393614520529327556[0] // Public signature debug description: (kotlin.Int){} @MyAnnotation /* fake */ override set(value: Int): Unit } // CHECK: // Mangled name: C // Public signature: /C|null[0] class C : Java1 { // CHECK: // Mangled name: C#(){} // Public signature: /C.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: C#foo(kotlin.Int){} // Public signature: /C.foo|-104159190164110731[0] // Public signature debug description: foo(kotlin.Int){} override fun foo(a: Int): Unit // CHECK: // Mangled name: C{}a // Public signature: /C.a|-1200697420457237799[0] // Public signature debug description: {}a override val a: Int // CHECK JVM_IR: // Mangled name: C#(){}kotlin.Int // Public signature: /C.a.|4232747788241509192[0] // Public signature debug description: (){}kotlin.Int override get(): Int // CHECK: // Mangled name: C{}b // Public signature: /C.b|772347207915745207[0] // Public signature debug description: {}b override var b: Int // CHECK JVM_IR: // Mangled name: C#(){}kotlin.Int // Public signature: /C.b.|-2902143276921469679[0] // Public signature debug description: (){}kotlin.Int override get(): Int // CHECK: // Mangled name: C#(kotlin.Int){} // Public signature: /C.b.|393614520529327556[0] // Public signature debug description: (kotlin.Int){} override set(value: Int): Unit } // CHECK: // Mangled name: D // Public signature: /D|null[0] class D : Java2 { // CHECK: // Mangled name: D#(){} // Public signature: /D.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: D#foo(kotlin.Int){} // Public signature: /D.foo|-104159190164110731[0] // Public signature debug description: foo(kotlin.Int){} @Override /* fake */ override fun foo(a: Int): Unit // CHECK: // Mangled name: D{}a // Public signature: /D.a|-1200697420457237799[0] // Public signature debug description: {}a /* fake */ override val a: Int // CHECK JVM_IR: // Mangled name: D#(){}kotlin.Int // Public signature: /D.a.|4232747788241509192[0] // Public signature debug description: (){}kotlin.Int @Override /* fake */ override get(): Int // CHECK: // Mangled name: D{}b // Public signature: /D.b|772347207915745207[0] // Public signature debug description: {}b /* fake */ override var b: Int // CHECK JVM_IR: // Mangled name: D#(){}kotlin.Int // Public signature: /D.b.|-2902143276921469679[0] // Public signature debug description: (){}kotlin.Int @MyAnnotation /* fake */ override get(): Int // CHECK: // Mangled name: D#(kotlin.Int){} // Public signature: /D.b.|393614520529327556[0] // Public signature debug description: (kotlin.Int){} @MyAnnotation /* fake */ override set(value: Int): Unit } // CHECK: // Mangled name: E // Public signature: /E|null[0] class E : Java2 { // CHECK: // Mangled name: E{}b // Public signature: /E.b|772347207915745207[0] // Public signature debug description: {}b override var b: Int // CHECK JVM_IR: // Mangled name: E#(){}kotlin.Int // Public signature: /E.b.|-2902143276921469679[0] // Public signature debug description: (){}kotlin.Int override get(): Int // CHECK: // Mangled name: E#(kotlin.Int){} // Public signature: /E.b.|393614520529327556[0] // Public signature debug description: (kotlin.Int){} override set // CHECK: // Mangled name: E#(){} // Public signature: /E.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: E#foo(kotlin.Int){} // Public signature: /E.foo|-104159190164110731[0] // Public signature debug description: foo(kotlin.Int){} override fun foo(a: Int): Unit // CHECK: // Mangled name: E{}a // Public signature: /E.a|-1200697420457237799[0] // Public signature debug description: {}a override val a: Int // CHECK JVM_IR: // Mangled name: E#(){}kotlin.Int // Public signature: /E.a.|4232747788241509192[0] // Public signature debug description: (){}kotlin.Int override get(): Int } // CHECK: // Mangled name: F // Public signature: /F|null[0] abstract class F : Java1, Java3 { // CHECK: // Mangled name: F#(){} // Public signature: /F.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: F#foo(kotlin.Int){} // Public signature: /F.foo|-104159190164110731[0] // Public signature debug description: foo(kotlin.Int){} @MyAnnotation /* fake */ override fun foo(@MyAnnotation a: Int): Unit // CHECK: // Mangled name: F#setA(kotlin.Int){} // Public signature: /F.setA|-2839184409429581850[0] // Public signature debug description: setA(kotlin.Int){} abstract /* fake */ override fun setA(a: Int): Unit // CHECK: // Mangled name: F{}a // Public signature: /F.a|-1200697420457237799[0] // Public signature debug description: {}a @MyAnnotation /* fake */ override val a: Int // CHECK JVM_IR: // Mangled name: F#(){}kotlin.Int // Public signature: /F.a.|4232747788241509192[0] // Public signature debug description: (){}kotlin.Int @MyAnnotation /* fake */ override get(): Int // CHECK: // Mangled name: F{}b // Public signature: /F.b|772347207915745207[0] // Public signature debug description: {}b /* fake */ override var b: Int // CHECK JVM_IR: // Mangled name: F#(){}kotlin.Int // Public signature: /F.b.|-2902143276921469679[0] // Public signature debug description: (){}kotlin.Int @MyAnnotation /* fake */ override get(): Int // CHECK: // Mangled name: F#(kotlin.Int){} // Public signature: /F.b.|393614520529327556[0] // Public signature debug description: (kotlin.Int){} @MyAnnotation /* fake */ override set(value: Int): Unit } // CHECK: // Mangled name: G // Public signature: /G|null[0] class G : Java1, Java3 { // CHECK: // Mangled name: G#(){} // Public signature: /G.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: G#foo(kotlin.Int){} // Public signature: /G.foo|-104159190164110731[0] // Public signature debug description: foo(kotlin.Int){} override fun foo(a: Int): Unit // CHECK: // Mangled name: G#setA(kotlin.Int){} // Public signature: /G.setA|-2839184409429581850[0] // Public signature debug description: setA(kotlin.Int){} override fun setA(a: Int): Unit // CHECK: // Mangled name: G{}a // Public signature: /G.a|-1200697420457237799[0] // Public signature debug description: {}a @MyAnnotation /* fake */ override val a: Int // CHECK JVM_IR: // Mangled name: G#(){}kotlin.Int // Public signature: /G.a.|4232747788241509192[0] // Public signature debug description: (){}kotlin.Int @MyAnnotation /* fake */ override get(): Int // CHECK: // Mangled name: G{}b // Public signature: /G.b|772347207915745207[0] // Public signature debug description: {}b /* fake */ override var b: Int // CHECK JVM_IR: // Mangled name: G#(){}kotlin.Int // Public signature: /G.b.|-2902143276921469679[0] // Public signature debug description: (){}kotlin.Int @MyAnnotation /* fake */ override get(): Int // CHECK: // Mangled name: G#(kotlin.Int){} // Public signature: /G.b.|393614520529327556[0] // Public signature debug description: (kotlin.Int){} @MyAnnotation /* fake */ override set(value: Int): Unit } // CHECK: // Mangled name: H // Public signature: /H|null[0] class H : Java1, KotlinInterface { // CHECK: // Mangled name: H#(){} // Public signature: /H.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: H#foo(kotlin.Int){} // Public signature: /H.foo|-104159190164110731[0] // Public signature debug description: foo(kotlin.Int){} @MyAnnotation /* fake */ override fun foo(@MyAnnotation a: Int): Unit // CHECK: // Mangled name: H{}a // Public signature: /H.a|-1200697420457237799[0] // Public signature debug description: {}a @MyAnnotation /* fake */ override val a: Int // CHECK JVM_IR: // Mangled name: H#(){}kotlin.Int // Public signature: /H.a.|4232747788241509192[0] // Public signature debug description: (){}kotlin.Int @MyAnnotation /* fake */ override get(): Int // CHECK: // Mangled name: H{}b // Public signature: /H.b|772347207915745207[0] // Public signature debug description: {}b /* fake */ override var b: Int // CHECK JVM_IR: // Mangled name: H#(){}kotlin.Int // Public signature: /H.b.|-2902143276921469679[0] // Public signature debug description: (){}kotlin.Int @MyAnnotation /* fake */ override get(): Int // CHECK: // Mangled name: H#(kotlin.Int){} // Public signature: /H.b.|393614520529327556[0] // Public signature debug description: (kotlin.Int){} @MyAnnotation /* fake */ override set(value: Int): Unit } // CHECK: // Mangled name: I // Public signature: /I|null[0] class I : Java1, KotlinInterface { // CHECK: // Mangled name: I#(){} // Public signature: /I.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: I#foo(kotlin.Int){} // Public signature: /I.foo|-104159190164110731[0] // Public signature debug description: foo(kotlin.Int){} override fun foo(a: Int): Unit // CHECK: // Mangled name: I{}a // Public signature: /I.a|-1200697420457237799[0] // Public signature debug description: {}a override val a: Int // CHECK JVM_IR: // Mangled name: I#(){}kotlin.Int // Public signature: /I.a.|4232747788241509192[0] // Public signature debug description: (){}kotlin.Int override get(): Int // CHECK: // Mangled name: I{}b // Public signature: /I.b|772347207915745207[0] // Public signature debug description: {}b override var b: Int // CHECK JVM_IR: // Mangled name: I#(){}kotlin.Int // Public signature: /I.b.|-2902143276921469679[0] // Public signature debug description: (){}kotlin.Int override get(): Int // CHECK: // Mangled name: I#(kotlin.Int){} // Public signature: /I.b.|393614520529327556[0] // Public signature debug description: (kotlin.Int){} override set(value: Int): Unit } // CHECK: // Mangled name: KotlinInterface // Public signature: /KotlinInterface|null[0] interface KotlinInterface { // CHECK: // Mangled name: KotlinInterface#foo(kotlin.Int){} // Public signature: /KotlinInterface.foo|-104159190164110731[0] // Public signature debug description: foo(kotlin.Int){} abstract fun foo(a: Int): Unit // CHECK: // Mangled name: KotlinInterface{}a // Public signature: /KotlinInterface.a|-1200697420457237799[0] // Public signature debug description: {}a abstract val a: Int // CHECK JVM_IR: // Mangled name: KotlinInterface#(){}kotlin.Int // Public signature: /KotlinInterface.a.|4232747788241509192[0] // Public signature debug description: (){}kotlin.Int abstract get // CHECK: // Mangled name: KotlinInterface{}b // Public signature: /KotlinInterface.b|772347207915745207[0] // Public signature debug description: {}b abstract val b: Int // CHECK JVM_IR: // Mangled name: KotlinInterface#(){}kotlin.Int // Public signature: /KotlinInterface.b.|-2902143276921469679[0] // Public signature debug description: (){}kotlin.Int abstract get } // CHECK: // Mangled name: #test(B;C;D;E;F;G;H;I){} // Public signature: /test|2768829396992774586[0] // Public signature debug description: test(B;C;D;E;F;G;H;I){} fun test(b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I): Unit