| // 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 |
| |
| } |