diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanDriver.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanDriver.kt index 26b8aa00e2d..2470e7a9644 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanDriver.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanDriver.kt @@ -117,11 +117,11 @@ fun runTopLevelPhases(konanConfig: KonanConfig, environment: KotlinCoreEnvironme phaser.phase(KonanPhase.SERIALIZER) { val declarationTable = DeclarationTable(context.irModule!!.irBuiltins, DescriptorTable()) - val serializedIr = IrModuleSerializer(context, declarationTable).serializedIrModule(context.irModule!!) + val serializedIr = IrModuleSerializer(context, declarationTable, bodiesOnlyForInlines = context.config.isInteropStubs).serializedIrModule(context.irModule!!) val serializer = KonanSerializationUtil(context, context.config.configuration.get(CommonConfigurationKeys.METADATA_VERSION)!!, declarationTable) context.serializedLinkData = - serializer.serializeModule(context.moduleDescriptor, if (!context.config.isInteropStubs) serializedIr else null) + serializer.serializeModule(context.moduleDescriptor, /*if (!context.config.isInteropStubs) serializedIr else null*/ serializedIr) } phaser.phase(KonanPhase.BACKEND) { phaser.phase(KonanPhase.LOWER) { diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrModuleSerializer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrModuleSerializer.kt index f13c4532755..14a560cd4dd 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrModuleSerializer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrModuleSerializer.kt @@ -45,7 +45,8 @@ import org.jetbrains.kotlin.types.Variance internal class IrModuleSerializer( val logger: LoggingContext, - val declarationTable: DeclarationTable + val declarationTable: DeclarationTable, + val bodiesOnlyForInlines: Boolean = false ) { private val loopIndex = mutableMapOf() @@ -805,7 +806,9 @@ internal class IrModuleSerializer( //proto.addValueParameter(serializeIrValueParameter(it)) proto.addValueParameter(serializeDeclaration(it)) } - function.body?.let { proto.body = serializeStatement(it) } + if (!bodiesOnlyForInlines || function.isInline) { + function.body?.let { proto.body = serializeStatement(it) } + } return proto.build() }