c746da3ce4
* - bridges building - bridges support in vtable and methods table * FunctionDescriptor.signature fix + some assertions * tests * refactoring * refactoring * removed debug output * refactoring * review fixes * implemented bridge construction for parameters * tests * refactoring * removed custom box/unbox * added bridge for extension receiver
31 lines
511 B
Kotlin
31 lines
511 B
Kotlin
// vtable call + interface call
|
|
interface Z {
|
|
fun foo(): Any
|
|
}
|
|
|
|
interface Y {
|
|
fun foo(): Int
|
|
}
|
|
|
|
open class A {
|
|
open fun foo(): Any = "A"
|
|
}
|
|
|
|
open class C : A() {
|
|
override fun foo(): Int = 42
|
|
}
|
|
|
|
open class D: C(), Y, Z
|
|
|
|
fun main(args: Array<String>) {
|
|
val d = D()
|
|
val y: Y = d
|
|
val z: Z = d
|
|
val c: C = d
|
|
val a: A = d
|
|
println(d.foo().toString())
|
|
println(y.foo().toString())
|
|
println(z.foo().toString())
|
|
println(c.foo().toString())
|
|
println(a.foo().toString())
|
|
} |