// CHECK: // Mangled name: A // Public signature: /A|null[0] class A : Java1 { // CHECK: // Mangled name: A#(){} // Public signature: /A.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: A#getB(){}kotlin.String // Public signature: /A.getB|-4761387797922949255[0] // Public signature debug description: getB(){}kotlin.String @JvmName(name = "getBJava") /* fake */ override fun getB(): String // CHECK: // Mangled name: A#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} // Public signature: /A.overloadMethod|6854898171569188871[0] // Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} @JvmOverloads /* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit // CHECK: // Mangled name: A{}a // Public signature: /A.a|-1200697420457237799[0] // Public signature debug description: {}a /* fake */ override val a: String // CHECK JVM_IR: // Mangled name: A#(){}kotlin.String // Public signature: /A.a.|-6318309956076983327[0] // Public signature debug description: (){}kotlin.String /* fake */ override get(): String // CHECK: // Mangled name: A{}c // Public signature: /A.c|-4416962153448040627[0] // Public signature debug description: {}c /* fake */ override var c: String // CHECK JVM_IR: // Mangled name: A#(){}kotlin.String // Public signature: /A.c.|-1685601560056418491[0] // Public signature debug description: (){}kotlin.String @JvmName(name = "getText") /* fake */ override get(): String // CHECK: // Mangled name: A#(kotlin.String){} // Public signature: /A.c.|8694985733648793496[0] // Public signature debug description: (kotlin.String){} @JvmName(name = "setText") /* fake */ override set(: String): 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 JVM_IR: // Mangled name: B#getB(){}kotlin.String // Public signature: /B.getB|-4761387797922949255[0] // Public signature debug description: getB(){}kotlin.String @JvmName(name = "getBJava") /* fake */ override fun getB(): String // CHECK: // Mangled name: B#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} // Public signature: /B.overloadMethod|6854898171569188871[0] // Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} override fun overloadMethod(first: String, second: String, third: Int): Unit // CHECK: // Mangled name: B{}a // Public signature: /B.a|-1200697420457237799[0] // Public signature debug description: {}a /* fake */ override val a: String // CHECK JVM_IR: // Mangled name: B#(){}kotlin.String // Public signature: /B.a.|-6318309956076983327[0] // Public signature debug description: (){}kotlin.String /* fake */ override get(): String // CHECK: // Mangled name: B{}c // Public signature: /B.c|-4416962153448040627[0] // Public signature debug description: {}c /* fake */ override var c: String // CHECK JVM_IR: // Mangled name: B#(){}kotlin.String // Public signature: /B.c.|-1685601560056418491[0] // Public signature debug description: (){}kotlin.String @JvmName(name = "getText") /* fake */ override get(): String // CHECK: // Mangled name: B#(kotlin.String){} // Public signature: /B.c.|8694985733648793496[0] // Public signature debug description: (kotlin.String){} @JvmName(name = "setText") /* fake */ override set(: String): Unit } // CHECK: // Mangled name: C // Public signature: /C|null[0] class C : Java2 { // CHECK: // Mangled name: C#(){} // Public signature: /C.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: C#getB(){}kotlin.String{EnhancedNullability} // Public signature: /C.getB|4278170284003720919[0] // Public signature debug description: getB(){}kotlin.String{EnhancedNullability} /* fake */ override fun getB(): @EnhancedNullability String // CHECK: // Mangled name: C#overloadMethod(kotlin.String{EnhancedNullability};kotlin.String{EnhancedNullability};kotlin.Int){} // Public signature: /C.overloadMethod|8770045736695034254[0] // Public signature debug description: overloadMethod(kotlin.String{EnhancedNullability};kotlin.String{EnhancedNullability};kotlin.Int){} /* fake */ override fun overloadMethod(first: @EnhancedNullability String, second: @EnhancedNullability String, third: Int): Unit // CHECK: // Mangled name: C{}a // Public signature: /C.a|-1200697420457237799[0] // Public signature debug description: {}a /* fake */ override val a: @EnhancedNullability String // CHECK JVM_IR: // Mangled name: C#(){}kotlin.String{EnhancedNullability} // Public signature: /C.a.|-7145393266243152488[0] // Public signature debug description: (){}kotlin.String{EnhancedNullability} /* fake */ override get(): @EnhancedNullability String // CHECK: // Mangled name: C{}c // Public signature: /C.c|-4416962153448040627[0] // Public signature debug description: {}c /* fake */ override var c: @EnhancedNullability String // CHECK JVM_IR: // Mangled name: C#(){}kotlin.String{EnhancedNullability} // Public signature: /C.c.|-2824529966014301292[0] // Public signature debug description: (){}kotlin.String{EnhancedNullability} /* fake */ override get(): @EnhancedNullability String // CHECK: // Mangled name: C#(kotlin.String?){} // Public signature: /C.c.|7821982893837257305[0] // Public signature debug description: (kotlin.String?){} /* fake */ override set(: String?): 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 JVM_IR: // Mangled name: D#getB(){}kotlin.String{EnhancedNullability} // Public signature: /D.getB|4278170284003720919[0] // Public signature debug description: getB(){}kotlin.String{EnhancedNullability} /* fake */ override fun getB(): @EnhancedNullability String // CHECK: // Mangled name: D#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} // Public signature: /D.overloadMethod|6854898171569188871[0] // Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} override fun overloadMethod(first: String, second: String, third: Int): Unit // CHECK: // Mangled name: D{}c // Public signature: /D.c|-4416962153448040627[0] // Public signature debug description: {}c /* fake */ override var c: @EnhancedNullability String // CHECK JVM_IR: // Mangled name: D#(){}kotlin.String{EnhancedNullability} // Public signature: /D.c.|-2824529966014301292[0] // Public signature debug description: (){}kotlin.String{EnhancedNullability} /* fake */ override get(): @EnhancedNullability String // CHECK: // Mangled name: D#(kotlin.String?){} // Public signature: /D.c.|7821982893837257305[0] // Public signature debug description: (kotlin.String?){} /* fake */ override set(: String?): Unit // CHECK: // Mangled name: D{}a // Public signature: /D.a|-1200697420457237799[0] // Public signature debug description: {}a override val a: String // CHECK JVM_IR: // Mangled name: D#(){}kotlin.String // Public signature: /D.a.|-6318309956076983327[0] // Public signature debug description: (){}kotlin.String override get(): String } // CHECK: // Mangled name: E // Public signature: /E|null[0] abstract class E : Java1, Java3 { // CHECK: // Mangled name: E#(){} // Public signature: /E.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: E#foo(){} // Public signature: /E.foo|-1041209573719867811[0] // Public signature debug description: foo(){} abstract /* fake */ override fun foo(): Unit // CHECK JVM_IR: // Mangled name: E#getB(){}kotlin.String // Public signature: /E.getB|-4761387797922949255[0] // Public signature debug description: getB(){}kotlin.String @JvmName(name = "getBJava") /* fake */ override fun getB(): String // CHECK JVM_IR: // Mangled name: E#getC(){}kotlin.String? // Public signature: /E.getC|-4926278272686304201[0] // Public signature debug description: getC(){}kotlin.String? abstract /* fake */ override fun getC(): String? // CHECK: // Mangled name: E#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} // Public signature: /E.overloadMethod|6854898171569188871[0] // Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} @JvmOverloads /* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit // CHECK: // Mangled name: E#setB(kotlin.String?){} // Public signature: /E.setB|3235024716846847901[0] // Public signature debug description: setB(kotlin.String?){} abstract /* fake */ override fun setB(text: String?): Unit // CHECK: // Mangled name: E#setC(kotlin.String?){} // Public signature: /E.setC|8854730909867222504[0] // Public signature debug description: setC(kotlin.String?){} abstract /* fake */ override fun setC(text: String?): Unit // CHECK: // Mangled name: E{}a // Public signature: /E.a|-1200697420457237799[0] // Public signature debug description: {}a /* fake */ override val a: String // CHECK JVM_IR: // Mangled name: E#(){}kotlin.String // Public signature: /E.a.|-6318309956076983327[0] // Public signature debug description: (){}kotlin.String /* fake */ override get(): String // CHECK: // Mangled name: E{}c // Public signature: /E.c|-4416962153448040627[0] // Public signature debug description: {}c /* fake */ override var c: String // CHECK JVM_IR: // Mangled name: E#(){}kotlin.String // Public signature: /E.c.|-1685601560056418491[0] // Public signature debug description: (){}kotlin.String @JvmName(name = "getText") /* fake */ override get(): String // CHECK: // Mangled name: E#(kotlin.String){} // Public signature: /E.c.|8694985733648793496[0] // Public signature debug description: (kotlin.String){} @JvmName(name = "setText") /* fake */ override set(: String): Unit } // CHECK: // Mangled name: F // Public signature: /F|null[0] class F : Java1, Java3 { // CHECK: // Mangled name: F#(){} // Public signature: /F.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: F#getB(){}kotlin.String // Public signature: /F.getB|-4761387797922949255[0] // Public signature debug description: getB(){}kotlin.String @JvmName(name = "getBJava") /* fake */ override fun getB(): String // CHECK: // Mangled name: F#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} // Public signature: /F.overloadMethod|6854898171569188871[0] // Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} @JvmOverloads /* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit // CHECK: // Mangled name: F#foo(){} // Public signature: /F.foo|-1041209573719867811[0] // Public signature debug description: foo(){} override fun foo(): Unit // CHECK JVM_IR: // Mangled name: F#getC(){}kotlin.String // Public signature: /F.getC|-869268604338261875[0] // Public signature debug description: getC(){}kotlin.String override fun getC(): String // CHECK: // Mangled name: F#setB(kotlin.String){} // Public signature: /F.setB|-8766973500211804524[0] // Public signature debug description: setB(kotlin.String){} override fun setB(text: String): Unit // CHECK: // Mangled name: F#setC(kotlin.String){} // Public signature: /F.setC|2472800919204397200[0] // Public signature debug description: setC(kotlin.String){} override fun setC(text: String): Unit // CHECK: // Mangled name: F{}a // Public signature: /F.a|-1200697420457237799[0] // Public signature debug description: {}a /* fake */ override val a: String // CHECK JVM_IR: // Mangled name: F#(){}kotlin.String // Public signature: /F.a.|-6318309956076983327[0] // Public signature debug description: (){}kotlin.String /* fake */ override get(): String // CHECK: // Mangled name: F{}c // Public signature: /F.c|-4416962153448040627[0] // Public signature debug description: {}c /* fake */ override var c: String // CHECK JVM_IR: // Mangled name: F#(){}kotlin.String // Public signature: /F.c.|-1685601560056418491[0] // Public signature debug description: (){}kotlin.String @JvmName(name = "getText") /* fake */ override get(): String // CHECK: // Mangled name: F#(kotlin.String){} // Public signature: /F.c.|8694985733648793496[0] // Public signature debug description: (kotlin.String){} @JvmName(name = "setText") /* fake */ override set(: String): Unit } // CHECK: // Mangled name: G // Public signature: /G|null[0] abstract class G : Java1, KotlinInterface { // CHECK: // Mangled name: G#(){} // Public signature: /G.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK: // Mangled name: G#foo(){} // Public signature: /G.foo|-1041209573719867811[0] // Public signature debug description: foo(){} abstract /* fake */ override fun foo(): Unit // CHECK JVM_IR: // Mangled name: G#getB(){}kotlin.String // Public signature: /G.getB|-4761387797922949255[0] // Public signature debug description: getB(){}kotlin.String @JvmName(name = "getBJava") /* fake */ override fun getB(): String // CHECK: // Mangled name: G#overloadMethod(kotlin.String){} // Public signature: /G.overloadMethod|8031992761249002127[0] // Public signature debug description: overloadMethod(kotlin.String){} abstract /* fake */ override fun overloadMethod(first: String): Unit // CHECK: // Mangled name: G#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} // Public signature: /G.overloadMethod|6854898171569188871[0] // Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} @JvmOverloads /* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit // CHECK: // Mangled name: G{}a // Public signature: /G.a|-1200697420457237799[0] // Public signature debug description: {}a /* fake */ override val a: String // CHECK JVM_IR: // Mangled name: G#(){}kotlin.String // Public signature: /G.a.|-6318309956076983327[0] // Public signature debug description: (){}kotlin.String /* fake */ override get(): String // CHECK: // Mangled name: G{}b // Public signature: /G.b|772347207915745207[0] // Public signature debug description: {}b abstract /* fake */ override val b: String // CHECK JVM_IR: // Mangled name: G#(){}kotlin.String // Public signature: /G.b.|5457451065030643294[0] // Public signature debug description: (){}kotlin.String abstract /* fake */ override get(): String // CHECK: // Mangled name: G{}c // Public signature: /G.c|-4416962153448040627[0] // Public signature debug description: {}c /* fake */ override var c: String // CHECK JVM_IR: // Mangled name: G#(){}kotlin.String // Public signature: /G.c.|-1685601560056418491[0] // Public signature debug description: (){}kotlin.String @JvmName(name = "getText") /* fake */ override get(): String // CHECK: // Mangled name: G#(kotlin.String){} // Public signature: /G.c.|8694985733648793496[0] // Public signature debug description: (kotlin.String){} @JvmName(name = "setText") /* fake */ override set(: String): Unit } // CHECK: // Mangled name: H // Public signature: /H|null[0] class H : Java1, KotlinInterface { // CHECK: // Mangled name: H{}b // Public signature: /H.b|772347207915745207[0] // Public signature debug description: {}b override val b: String // CHECK JVM_IR: // Mangled name: H#(){}kotlin.String // Public signature: /H.b.|5457451065030643294[0] // Public signature debug description: (){}kotlin.String override get // CHECK: // Mangled name: H#(kotlin.String){} // Public signature: /H.|1280618353163213788[0] // Public signature debug description: (kotlin.String){} constructor(b: String) /* primary */ // CHECK JVM_IR: // Mangled name: H#getB(){}kotlin.String // Public signature: /H.getB|-4761387797922949255[0] // Public signature debug description: getB(){}kotlin.String @JvmName(name = "getBJava") /* fake */ override fun getB(): String // CHECK: // Mangled name: H#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} // Public signature: /H.overloadMethod|6854898171569188871[0] // Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} @JvmOverloads /* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit // CHECK: // Mangled name: H#foo(){} // Public signature: /H.foo|-1041209573719867811[0] // Public signature debug description: foo(){} override fun foo(): Unit // CHECK: // Mangled name: H#overloadMethod(kotlin.String){} // Public signature: /H.overloadMethod|8031992761249002127[0] // Public signature debug description: overloadMethod(kotlin.String){} override fun overloadMethod(first: String): Unit // CHECK: // Mangled name: H{}a // Public signature: /H.a|-1200697420457237799[0] // Public signature debug description: {}a /* fake */ override val a: String // CHECK JVM_IR: // Mangled name: H#(){}kotlin.String // Public signature: /H.a.|-6318309956076983327[0] // Public signature debug description: (){}kotlin.String /* fake */ override get(): String // CHECK: // Mangled name: H{}c // Public signature: /H.c|-4416962153448040627[0] // Public signature debug description: {}c /* fake */ override var c: String // CHECK JVM_IR: // Mangled name: H#(){}kotlin.String // Public signature: /H.c.|-1685601560056418491[0] // Public signature debug description: (){}kotlin.String @JvmName(name = "getText") /* fake */ override get(): String // CHECK: // Mangled name: H#(kotlin.String){} // Public signature: /H.c.|8694985733648793496[0] // Public signature debug description: (kotlin.String){} @JvmName(name = "setText") /* fake */ override set(: String): Unit } // CHECK: // Mangled name: KotlinClass // Public signature: /KotlinClass|null[0] open class KotlinClass { // CHECK: // Mangled name: KotlinClass{}a // Public signature: /KotlinClass.a|-1200697420457237799[0] // Public signature debug description: {}a val a: String // CHECK JVM_IR: // Mangled name: KotlinClass#(){}kotlin.String // Public signature: /KotlinClass.a.|-6318309956076983327[0] // Public signature debug description: (){}kotlin.String get // CHECK: // Mangled name: KotlinClass{}c // Public signature: /KotlinClass.c|-4416962153448040627[0] // Public signature debug description: {}c var c: String // CHECK JVM_IR: // Mangled name: KotlinClass#(){}kotlin.String // Public signature: /KotlinClass.c.|-1685601560056418491[0] // Public signature debug description: (){}kotlin.String @JvmName(name = "getText") get // CHECK: // Mangled name: KotlinClass#(kotlin.String){} // Public signature: /KotlinClass.c.|8694985733648793496[0] // Public signature debug description: (kotlin.String){} @JvmName(name = "setText") set // CHECK: // Mangled name: KotlinClass.Companion // Public signature: /KotlinClass.Companion|null[0] companion object Companion { // CHECK: // Mangled name: KotlinClass.Companion#(){} // Public signature: /KotlinClass.Companion.|-5645683436151566731[0] // Public signature debug description: (){} private constructor() /* primary */ // CHECK: // Mangled name: KotlinClass.Companion#foo(){} // Public signature: /KotlinClass.Companion.foo|-1041209573719867811[0] // Public signature debug description: foo(){} @JvmStatic fun foo(): Unit } // CHECK: // Mangled name: KotlinClass#(){} // Public signature: /KotlinClass.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: KotlinClass#getB(){}kotlin.String // Public signature: /KotlinClass.getB|-4761387797922949255[0] // Public signature debug description: getB(){}kotlin.String @JvmName(name = "getBJava") fun getB(): String // CHECK: // Mangled name: KotlinClass#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} // Public signature: /KotlinClass.overloadMethod|6854898171569188871[0] // Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){} @JvmOverloads open fun overloadMethod(first: String, second: String, third: Int): 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: KotlinInterface#overloadMethod(kotlin.String){} // Public signature: /KotlinInterface.overloadMethod|8031992761249002127[0] // Public signature debug description: overloadMethod(kotlin.String){} abstract fun overloadMethod(first: String): Unit // CHECK: // Mangled name: KotlinInterface{}a // Public signature: /KotlinInterface.a|-1200697420457237799[0] // Public signature debug description: {}a abstract val a: String // CHECK JVM_IR: // Mangled name: KotlinInterface#(){}kotlin.String // Public signature: /KotlinInterface.a.|-6318309956076983327[0] // Public signature debug description: (){}kotlin.String abstract get // CHECK: // Mangled name: KotlinInterface{}b // Public signature: /KotlinInterface.b|772347207915745207[0] // Public signature debug description: {}b abstract val b: String // CHECK JVM_IR: // Mangled name: KotlinInterface#(){}kotlin.String // Public signature: /KotlinInterface.b.|5457451065030643294[0] // Public signature debug description: (){}kotlin.String abstract get // CHECK: // Mangled name: KotlinInterface{}c // Public signature: /KotlinInterface.c|-4416962153448040627[0] // Public signature debug description: {}c abstract var c: String // CHECK JVM_IR: // Mangled name: KotlinInterface#(){}kotlin.String // Public signature: /KotlinInterface.c.|-1685601560056418491[0] // Public signature debug description: (){}kotlin.String abstract get // CHECK: // Mangled name: KotlinInterface#(kotlin.String){} // Public signature: /KotlinInterface.c.|8694985733648793496[0] // Public signature debug description: (kotlin.String){} abstract set } // CHECK: // Mangled name: #test(A;B;C;D;E;F;G;H){} // Public signature: /test|-2663909601123444132[0] // Public signature debug description: test(A;B;C;D;E;F;G;H){} fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H): Unit