diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt b/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt similarity index 75% rename from kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt rename to compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt index 123c9860423..f005bda37c2 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt +++ b/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt @@ -1,15 +1,20 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + package org.jetbrains.kotlin.backend.konan.serialization import org.jetbrains.kotlin.backend.common.serialization.CompatibilityMode 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.config.LanguageVersionSettings 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.util.IrMessageLogger import org.jetbrains.kotlin.ir.util.hasAnnotation +import org.jetbrains.kotlin.name.NativeRuntimeNames class KonanIrFileSerializer( messageLogger: IrMessageLogger, @@ -32,13 +37,13 @@ class KonanIrFileSerializer( ) { override fun backendSpecificExplicitRoot(node: IrAnnotationContainer): Boolean { - val fqn = when (node) { - is IrFunction -> RuntimeNames.exportForCppRuntime - is IrClass -> RuntimeNames.exportTypeInfoAnnotation + val classId = when (node) { + is IrFunction -> NativeRuntimeNames.Annotations.exportForCppRuntimeClassId + is IrClass -> NativeRuntimeNames.Annotations.exportTypeInfoClassId else -> return false } - return node.annotations.hasAnnotation(fqn) + return node.hasAnnotation(classId) } override fun backendSpecificSerializeAllMembers(irClass: IrClass) = !KonanFakeOverrideClassFilter.needToConstructFakeOverrides(irClass) diff --git a/core/compiler.common.native/src/org/jetbrains/kotlin/name/NativeRuntimeNames.kt b/core/compiler.common.native/src/org/jetbrains/kotlin/name/NativeRuntimeNames.kt index dd9e0e6e7ac..30ae63fe746 100644 --- a/core/compiler.common.native/src/org/jetbrains/kotlin/name/NativeRuntimeNames.kt +++ b/core/compiler.common.native/src/org/jetbrains/kotlin/name/NativeRuntimeNames.kt @@ -14,6 +14,7 @@ object NativeRuntimeNames { val exportedBridgeClassId = ClassId(kotlinNativeInternalPackage, Name.identifier("ExportedBridge")) val exportForCppRuntimeClassId = ClassId(kotlinNativeInternalPackage, Name.identifier("ExportForCppRuntime")) val exportForCompilerClassId = ClassId(kotlinNativeInternalPackage, Name.identifier("ExportForCompiler")) + val exportTypeInfoClassId = ClassId(kotlinNativeInternalPackage, Name.identifier("ExportTypeInfo")) val gcUnsafeCallClassId = ClassId(kotlinNativeInternalPackage, Name.identifier("GCUnsafeCall")) val Throws = ClassId(StandardClassIds.BASE_KOTLIN_PACKAGE, Name.identifier("Throws")) val ThrowsAlias = ClassId(kotlinNativePackage, Name.identifier("Throws")) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/RuntimeNames.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/RuntimeNames.kt index 5dccc484449..495c681caba 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/RuntimeNames.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/RuntimeNames.kt @@ -10,7 +10,7 @@ object RuntimeNames { val exportForCppRuntime = NativeRuntimeNames.Annotations.exportForCppRuntimeClassId.asSingleFqName() val exportedBridge = NativeRuntimeNames.Annotations.exportedBridgeClassId.asSingleFqName() val exportForCompilerAnnotation = NativeRuntimeNames.Annotations.exportForCompilerClassId.asSingleFqName() - val exportTypeInfoAnnotation = FqName("kotlin.native.internal.ExportTypeInfo") + val exportTypeInfoAnnotation = NativeRuntimeNames.Annotations.exportTypeInfoClassId.asSingleFqName() val cCall = FqName("kotlinx.cinterop.internal.CCall") val cStructMemberAt = FqName("kotlinx.cinterop.internal.CStruct.MemberAt") val cStructArrayMemberAt = FqName("kotlinx.cinterop.internal.CStruct.ArrayMemberAt")