From 39d1b8956dc34412db377574045afe67a2f84a7e Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Wed, 10 May 2017 14:19:21 +0300 Subject: [PATCH] Test on abstract bridge --- backend.native/tests/build.gradle | 5 ++++ .../tests/codegen/bridges/test17.kt | 25 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 backend.native/tests/codegen/bridges/test17.kt diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index eba440c31d6..fc27f2f104d 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -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" diff --git a/backend.native/tests/codegen/bridges/test17.kt b/backend.native/tests/codegen/bridges/test17.kt new file mode 100644 index 00000000000..5da698965a7 --- /dev/null +++ b/backend.native/tests/codegen/bridges/test17.kt @@ -0,0 +1,25 @@ +// abstract bridge +interface A { + fun foo(): T +} + +abstract class B: A + +abstract class C: B() + +class D: C() { + override fun foo(): Int { + return 42 + } +} + +fun main(args: Array) { + val d = D() + val c: C = d + val b: B = d + val a: A = d + println(d.foo()) + println(c.foo()) + println(b.foo()) + println(a.foo()) +} \ No newline at end of file