From bf65a78a93fc10fe47f60b2446f550a7329b5360 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Thu, 2 Mar 2017 11:54:10 +0300 Subject: [PATCH] Made bridge methods public. Added test on usage of a bridge method from different module. Bridge methods must be public in order use them from other modules. --- .../org/jetbrains/kotlin/backend/konan/Context.kt | 2 +- backend.native/tests/build.gradle | 6 ++++++ backend.native/tests/codegen/bridges/linkTest_lib.kt | 9 +++++++++ .../tests/codegen/bridges/linkTest_main.kt | 12 ++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 backend.native/tests/codegen/bridges/linkTest_lib.kt create mode 100644 backend.native/tests/codegen/bridges/linkTest_main.kt diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt index c6ce83220fe..d6b2292a7bb 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt @@ -93,7 +93,7 @@ internal class SpecialDescriptorsFactory(val context: Context) { }, returnType, descriptor.modality, - Visibilities.PRIVATE) + Visibilities.PUBLIC) } } diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index b17b8deff3b..03d7e38eed9 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -573,6 +573,12 @@ task bridges_test16(type: RunKonanTest) { source = "codegen/bridges/test16.kt" } +task bridges_linkTest(type: LinkKonanTest) { + goldValue = "42\n42\n42\n" + source = "codegen/bridges/linkTest_main.kt" + lib = "codegen/bridges/linkTest_lib.kt" +} + task classDelegation_method(type: RunKonanTest) { goldValue = "OKOK\n" source = "codegen/classDelegation/method.kt" diff --git a/backend.native/tests/codegen/bridges/linkTest_lib.kt b/backend.native/tests/codegen/bridges/linkTest_lib.kt new file mode 100644 index 00000000000..3df1d13e0e4 --- /dev/null +++ b/backend.native/tests/codegen/bridges/linkTest_lib.kt @@ -0,0 +1,9 @@ +package a + +interface A { + fun foo(): T +} + +open class C: A { + override fun foo(): Int = 42 +} \ No newline at end of file diff --git a/backend.native/tests/codegen/bridges/linkTest_main.kt b/backend.native/tests/codegen/bridges/linkTest_main.kt new file mode 100644 index 00000000000..38c4dabf20a --- /dev/null +++ b/backend.native/tests/codegen/bridges/linkTest_main.kt @@ -0,0 +1,12 @@ +import a.* + +class B: C() + +fun main(args: Array) { + val b = B() + println(b.foo()) + val c: C = b + println(c.foo()) + val a: A = b + println(a.foo()) +} \ No newline at end of file