blob: b34a37f0b33810ce0db9fb7c4bd3638c3b9cd09f [file]
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A : J, I {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#foo(){}Child
// Public signature: /A.foo|8517421086584195144[0]
// Public signature debug description: foo(){}Child
abstract /* fake */ override fun foo(): Child
}
// CHECK:
// Mangled name: Base
// Public signature: /Base|null[0]
open class Base {
// CHECK:
// Mangled name: Base#<init>(){}
// Public signature: /Base.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: Child
// Public signature: /Child|null[0]
class Child : Base {
// CHECK:
// Mangled name: Child#<init>(){}
// Public signature: /Child.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
abstract class J {
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: J#foo(){}Child
// Public signature: /J.foo|8517421086584195144[0]
// Public signature debug description: foo(){}Child
abstract fun foo(): Child
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
interface I {
// CHECK JVM_IR:
// Mangled name: I#foo(){}Base
// Public signature: /I.foo|-5590126600799232132[0]
// Public signature debug description: foo(){}Base
abstract fun foo(): Base
}