diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/LegacyDescriptorUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/LegacyDescriptorUtils.kt index 4ba4de92f67..51b8249f9a9 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/LegacyDescriptorUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/LegacyDescriptorUtils.kt @@ -140,7 +140,7 @@ private fun getPackagesFqNames(module: ModuleDescriptor): Set { fun ModuleDescriptor.getPackageFragments(): List = getPackagesFqNames(this).flatMap { - getPackage(it).fragments.filter { it.module == this } + getPackage(it).fragments.filter { it.module == this }.toSet() } val ClassDescriptor.enumEntries: List diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportLazy.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportLazy.kt index e8fd3115bd7..12b07488a58 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportLazy.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportLazy.kt @@ -426,7 +426,7 @@ private abstract class LazyObjCProtocol( get() = realStub.superProtocols } -private fun createNamerConfiguration(configuration: ObjCExportLazy.Configuration): ObjCExportNamer.Configuration { +internal fun createNamerConfiguration(configuration: ObjCExportLazy.Configuration): ObjCExportNamer.Configuration { return object : ObjCExportNamer.Configuration { override val topLevelNamePrefix = abbreviate(configuration.frameworkName) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjcExportHeaderGeneratorMobile.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjcExportHeaderGeneratorMobile.kt new file mode 100644 index 00000000000..a1c0554cb7b --- /dev/null +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjcExportHeaderGeneratorMobile.kt @@ -0,0 +1,45 @@ +package org.jetbrains.kotlin.backend.konan.objcexport + +import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.descriptors.FunctionDescriptor +import org.jetbrains.kotlin.descriptors.ModuleDescriptor +import org.jetbrains.kotlin.resolve.deprecation.DeprecationResolver + +class ObjcExportHeaderGeneratorMobile internal constructor( + moduleDescriptors: List, + mapper: ObjCExportMapper, + namer: ObjCExportNamer, + private val warningCollector: ObjCExportWarningCollector, + objcGenerics: Boolean +) : ObjCExportHeaderGenerator(moduleDescriptors, mapper, namer, objcGenerics) { + + companion object { + fun createInstance( + configuration: ObjCExportLazy.Configuration, + warningCollector: ObjCExportWarningCollector, + builtIns: KotlinBuiltIns, + moduleDescriptors: List, + deprecationResolver: DeprecationResolver? = null): ObjCExportHeaderGenerator { + + val mapper = ObjCExportMapper(deprecationResolver, local = true) + val namerConfiguration = createNamerConfiguration(configuration) + val namer = ObjCExportNamerImpl(namerConfiguration, builtIns, mapper, local = true) + + return ObjcExportHeaderGeneratorMobile( + moduleDescriptors, + mapper, + namer, + warningCollector, + configuration.objcGenerics) + } + } + + override fun reportWarning(text: String) { + warningCollector.reportWarning(text) + } + + override fun reportWarning(method: FunctionDescriptor, text: String) { + warningCollector.reportWarning(method, text) + } + +}