// CHECK: // Mangled name: K1 // Public signature: /K1|null[0] class K1 : JFoo { // CHECK: // Mangled name: K1#(){} // Public signature: /K1.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: K1#foo(){}kotlin.String{EnhancedNullability} // Public signature: /K1.foo|7566064415059097436[0] // Public signature debug description: foo(){}kotlin.String{EnhancedNullability} /* fake */ override fun foo(): @EnhancedNullability String } // CHECK: // Mangled name: K2 // Public signature: /K2|null[0] class K2 : JFoo { // CHECK: // Mangled name: K2#(){} // Public signature: /K2.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: K2#foo(){}kotlin.String // Public signature: /K2.foo|485335955883620819[0] // Public signature debug description: foo(){}kotlin.String override fun foo(): String } // CHECK: // Mangled name: K3 // Public signature: /K3|null[0] class K3 : JUnrelatedFoo, IFoo { // CHECK: // Mangled name: K3#(){} // Public signature: /K3.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: K3#foo(){}kotlin.String // Public signature: /K3.foo|485335955883620819[0] // Public signature debug description: foo(){}kotlin.String /* fake */ override fun foo(): String } // CHECK: // Mangled name: K4 // Public signature: /K4|null[0] class K4 : JUnrelatedFoo, IFoo { // CHECK: // Mangled name: K4#(){} // Public signature: /K4.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: K4#foo(){}kotlin.String? // Public signature: /K4.foo|4483044608789364619[0] // Public signature debug description: foo(){}kotlin.String? override fun foo(): String? } // CHECK: // Mangled name: TestJFoo // Public signature: /TestJFoo|null[0] class TestJFoo : IFoo { // CHECK: // Mangled name: TestJFoo#(){} // Public signature: /TestJFoo.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: TestJFoo#foo(){}kotlin.String // Public signature: /TestJFoo.foo|485335955883620819[0] // Public signature debug description: foo(){}kotlin.String override fun foo(): String } // CHECK: // Mangled name: TestK1 // Public signature: /TestK1|null[0] class TestK1 : IFoo { // CHECK: // Mangled name: TestK1#(){} // Public signature: /TestK1.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: TestK1#foo(){}kotlin.String // Public signature: /TestK1.foo|485335955883620819[0] // Public signature debug description: foo(){}kotlin.String override fun foo(): String } // CHECK: // Mangled name: TestK2 // Public signature: /TestK2|null[0] class TestK2 : IFoo { // CHECK: // Mangled name: TestK2#(){} // Public signature: /TestK2.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: TestK2#foo(){}kotlin.String // Public signature: /TestK2.foo|485335955883620819[0] // Public signature debug description: foo(){}kotlin.String override fun foo(): String } // CHECK: // Mangled name: TestK3 // Public signature: /TestK3|null[0] class TestK3 : IFoo { // CHECK: // Mangled name: TestK3#(){} // Public signature: /TestK3.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: TestK3#foo(){}kotlin.String // Public signature: /TestK3.foo|485335955883620819[0] // Public signature debug description: foo(){}kotlin.String override fun foo(): String } // CHECK: // Mangled name: TestK4 // Public signature: /TestK4|null[0] class TestK4 : IFoo { // CHECK: // Mangled name: TestK4#(){} // Public signature: /TestK4.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ // CHECK JVM_IR: // Mangled name: TestK4#foo(){}kotlin.String // Public signature: /TestK4.foo|485335955883620819[0] // Public signature debug description: foo(){}kotlin.String override fun foo(): String } // CHECK: // Mangled name: IFoo // Public signature: /IFoo|null[0] interface IFoo { // CHECK JVM_IR: // Mangled name: IFoo#foo(){}kotlin.String // Public signature: /IFoo.foo|485335955883620819[0] // Public signature debug description: foo(){}kotlin.String abstract fun foo(): String }