From 62bee84a26ba7263054fd4a43182d2cb37fb7175 Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Tue, 3 Oct 2017 15:12:58 +0300 Subject: [PATCH] Workaround non-unique symbol names of Objective-C category methods --- .../kotlin/backend/konan/llvm/BinaryInterface.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/BinaryInterface.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/BinaryInterface.kt index d7fc4cc2edf..df10e3663ee 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/BinaryInterface.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/BinaryInterface.kt @@ -158,7 +158,15 @@ internal val FunctionDescriptor.functionName: String get() { with(this.original) { // basic support for generics this.getObjCMethodInfo()?.let { - return "objc:${it.selector}" + return buildString { + if (extensionReceiverParameter != null) { + append(TypeUtils.getClassDescriptor(extensionReceiverParameter!!.type)!!.name) + append(".") + } + + append("objc:") + append(it.selector) + } } return "$name$signature"