diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objcexport/ObjCExportCodeGenerator.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objcexport/ObjCExportCodeGenerator.kt index 3f5481b78f0..a90df06e549 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objcexport/ObjCExportCodeGenerator.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objcexport/ObjCExportCodeGenerator.kt @@ -1252,7 +1252,7 @@ private fun ObjCExportCodeGenerator.createTypeAdapter( classAdapters += createArrayConstructorAdapter(it.irConstructorSymbol.owner) } is ObjCGetterForKotlinEnumEntry -> { - classAdapters += createEnumEntryAdapter(it.irEnumEntrySymbol.owner) + classAdapters += createEnumEntryAdapter(it.irEnumEntrySymbol.owner, it.selector) } is ObjCClassMethodForKotlinEnumValues -> { classAdapters += createEnumValuesAdapter(it.valuesFunctionSymbol.owner, it.selector) @@ -1480,10 +1480,9 @@ private fun ObjCExportCodeGenerator.createObjectInstanceAdapter( } private fun ObjCExportCodeGenerator.createEnumEntryAdapter( - irEnumEntry: IrEnumEntry + irEnumEntry: IrEnumEntry, + selector: String ): ObjCExportCodeGenerator.ObjCToKotlinMethodAdapter { - val selector = namer.getEnumEntrySelector(irEnumEntry.descriptor) - return generateObjCToKotlinSyntheticGetter(selector) { initRuntimeIfNeeded() // For instance methods it gets called when allocating. diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportCodeSpec.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportCodeSpec.kt index af8154c613d..1f7134e545e 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportCodeSpec.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportCodeSpec.kt @@ -69,7 +69,7 @@ internal fun ObjCExportedInterface.createCodeSpec(symbolTable: SymbolTable): Obj if (descriptor.kind == ClassKind.ENUM_CLASS) { descriptor.enumEntries.mapTo(methods) { - ObjCGetterForKotlinEnumEntry(symbolTable.referenceEnumEntry(it)) + ObjCGetterForKotlinEnumEntry(symbolTable.referenceEnumEntry(it), namer.getEnumEntrySelector(it)) } descriptor.getEnumValuesFunctionDescriptor()?.let { @@ -109,7 +109,10 @@ internal class ObjCFactoryMethodForKotlinArrayConstructor( val irConstructorSymbol: IrConstructorSymbol ) : ObjCMethodSpec() -internal class ObjCGetterForKotlinEnumEntry(val irEnumEntrySymbol: IrEnumEntrySymbol) : ObjCMethodSpec() +internal class ObjCGetterForKotlinEnumEntry( + val irEnumEntrySymbol: IrEnumEntrySymbol, + val selector: String +) : ObjCMethodSpec() internal class ObjCClassMethodForKotlinEnumValues( val valuesFunctionSymbol: IrFunctionSymbol,