diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/DescriptorUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/DescriptorUtils.kt index baf0cea2ca0..dce42dbdad0 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/DescriptorUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/DescriptorUtils.kt @@ -22,6 +22,7 @@ import org.jetbrains.kotlin.backend.konan.isRepresentedAs import org.jetbrains.kotlin.backend.konan.isValueType import org.jetbrains.kotlin.backend.konan.llvm.functionName import org.jetbrains.kotlin.backend.konan.llvm.localHash +import org.jetbrains.kotlin.backend.konan.llvm.isExported import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor import org.jetbrains.kotlin.builtins.getFunctionalClassKind import org.jetbrains.kotlin.builtins.isFunctionType @@ -304,3 +305,6 @@ internal fun DeclarationDescriptor.getMemberScope(): MemberScope { internal val FunctionDescriptor.needsInlining: Boolean get() = (this.isInline && !this.isExternal) +internal val FunctionDescriptor.needsSerializedIr: Boolean + get() = (this.needsInlining && this.isExported()) + diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDescriptorSerializer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDescriptorSerializer.kt index f3d1a72ad06..e12cf306b96 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDescriptorSerializer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDescriptorSerializer.kt @@ -16,7 +16,7 @@ package org.jetbrains.kotlin.serialization -import org.jetbrains.kotlin.backend.konan.descriptors.needsInlining +import org.jetbrains.kotlin.backend.konan.descriptors.needsSerializedIr import org.jetbrains.kotlin.backend.konan.serialization.IrAwareExtension import org.jetbrains.kotlin.backend.konan.util.onlyIf import org.jetbrains.kotlin.builtins.KotlinBuiltIns @@ -228,11 +228,11 @@ class KonanDescriptorSerializer private constructor( extension.serializeProperty(descriptor, builder) if (extension is IrAwareExtension) { - descriptor.getter?.onlyIf({needsInlining}) { + descriptor.getter?.onlyIf({needsSerializedIr}) { extension.addGetterIR(builder, extension.serializeInlineBody(it, {it -> typeId(it)})) } - descriptor.setter?.onlyIf({needsInlining}) { + descriptor.setter?.onlyIf({needsSerializedIr}) { extension.addSetterIR(builder, extension.serializeInlineBody(it, {it -> typeId(it)})) } @@ -296,7 +296,7 @@ class KonanDescriptorSerializer private constructor( extension.serializeFunction(descriptor, builder) if (extension is IrAwareExtension - && descriptor.needsInlining) { + && descriptor.needsSerializedIr) { extension.addFunctionIR(builder, extension.serializeInlineBody(descriptor, {it -> typeId(it)})) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializerVisitor.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializerVisitor.kt index cb42dc91898..50917bb96bf 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializerVisitor.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializerVisitor.kt @@ -40,7 +40,7 @@ import org.jetbrains.kotlin.backend.common.validateIrFunction internal class DeserializerDriver(val context: Context) { internal fun deserializeInlineBody(descriptor: FunctionDescriptor): IrDeclaration? { - if (!descriptor.needsInlining) return null + if (!descriptor.needsSerializedIr) return null if (!descriptor.isDeserializableCallable) return null var deserializedIr: IrDeclaration? = null