diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt index baeeddb3f7b..23528a961fe 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt @@ -41,7 +41,11 @@ internal class ObjCExportHeaderGenerator(val context: Context) { override fun getCategoryMembersFor(descriptor: ClassDescriptor) = extensions[descriptor].orEmpty() - override val specialMappedTypes get() = customTypeMappers.keys + override fun isSpecialMapped(descriptor: ClassDescriptor): Boolean { + // TODO: this method duplicates some of the [mapReferenceType] logic. + return descriptor == context.builtIns.any || + descriptor.getAllSuperClassifiers().any { it in customTypeMappers } + } } val namer = ObjCExportNamer(context, mapper) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportMapper.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportMapper.kt index f59e209ba72..b44b3a94753 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportMapper.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportMapper.kt @@ -34,15 +34,12 @@ import org.jetbrains.kotlin.types.typeUtil.isUnit internal interface ObjCExportMapper { fun getCategoryMembersFor(descriptor: ClassDescriptor): List val maxFunctionTypeParameterCount get() = 22 - val specialMappedTypes: Set + fun isSpecialMapped(descriptor: ClassDescriptor): Boolean } private fun ObjCExportMapper.isRepresentedAsObjCInterface(descriptor: ClassDescriptor): Boolean = !descriptor.isInterface && !isSpecialMapped(descriptor) -private fun ObjCExportMapper.isSpecialMapped(descriptor: ClassDescriptor): Boolean = - descriptor.getAllSuperClassifiers().any { it in specialMappedTypes } - internal fun ObjCExportMapper.getClassIfCategory(descriptor: CallableMemberDescriptor): ClassDescriptor? { if (descriptor.dispatchReceiverParameter != null) return null