diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt index 2a34d1f745c..7ceeaa72329 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt @@ -5,6 +5,7 @@ import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable import org.jetbrains.kotlin.backend.common.serialization.IrFileSerializer import org.jetbrains.kotlin.backend.konan.RuntimeNames import org.jetbrains.kotlin.descriptors.DeclarationDescriptor +import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.symbols.IrSymbol @@ -18,11 +19,15 @@ class KonanIrFileSerializer( bodiesOnlyForInlines: Boolean = false ): IrFileSerializer(logger, declarationTable, expectDescriptorToSymbol, skipExpects = skipExpects, bodiesOnlyForInlines = bodiesOnlyForInlines) { - override fun backendSpecificExplicitRoot(declaration: IrFunction) = - declaration.annotations.hasAnnotation(RuntimeNames.exportForCppRuntime) + override fun backendSpecificExplicitRoot(node: IrAnnotationContainer): Boolean { + val fqn = when (node) { + is IrFunction -> RuntimeNames.exportForCppRuntime + is IrClass -> RuntimeNames.exportTypeInfoAnnotation + else -> return false + } - override fun backendSpecificExplicitRoot(declaration: IrClass) = - declaration.annotations.hasAnnotation(RuntimeNames.exportTypeInfoAnnotation) + return node.annotations.hasAnnotation(fqn) + } override fun backendSpecificSerializeAllMembers(irClass: IrClass) = !KonanFakeOverrideClassFilter.constructFakeOverrides(irClass) } \ No newline at end of file