Test on abstract bridge
This commit is contained in:
@@ -683,6 +683,11 @@ task bridges_test16(type: RunKonanTest) {
|
||||
source = "codegen/bridges/test16.kt"
|
||||
}
|
||||
|
||||
task bridges_test17(type: RunKonanTest) {
|
||||
goldValue = "42\n42\n42\n42\n"
|
||||
source = "codegen/bridges/test17.kt"
|
||||
}
|
||||
|
||||
task bridges_linkTest(type: LinkKonanTest) {
|
||||
goldValue = "42\n42\n42\n"
|
||||
source = "codegen/bridges/linkTest_main.kt"
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
// abstract bridge
|
||||
interface A<T> {
|
||||
fun foo(): T
|
||||
}
|
||||
|
||||
abstract class B<T>: A<T>
|
||||
|
||||
abstract class C: B<Int>()
|
||||
|
||||
class D: C() {
|
||||
override fun foo(): Int {
|
||||
return 42
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val d = D()
|
||||
val c: C = d
|
||||
val b: B<Int> = d
|
||||
val a: A<Int> = d
|
||||
println(d.foo())
|
||||
println(c.foo())
|
||||
println(b.foo())
|
||||
println(a.foo())
|
||||
}
|
||||
Reference in New Issue
Block a user