[K/N] Move KonanIrFileSerializer to the serialization.native module

KT-64392
This commit is contained in:
Sergej Jaskiewicz
2023-12-18 20:46:41 +01:00
committed by Space Team
parent a032db500c
commit 3f9de91bec
3 changed files with 12 additions and 6 deletions
@@ -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")
@@ -1,45 +0,0 @@
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
class KonanIrFileSerializer(
messageLogger: IrMessageLogger,
declarationTable: DeclarationTable,
languageVersionSettings: LanguageVersionSettings,
bodiesOnlyForInlines: Boolean = false,
compatibilityMode: CompatibilityMode,
normalizeAbsolutePaths: Boolean,
sourceBaseDirs: Collection<String>,
skipPrivateApi: Boolean = false,
) : IrFileSerializer(
messageLogger,
declarationTable,
compatibilityMode,
languageVersionSettings,
skipPrivateApi = skipPrivateApi,
bodiesOnlyForInlines = bodiesOnlyForInlines,
normalizeAbsolutePaths = normalizeAbsolutePaths,
sourceBaseDirs = sourceBaseDirs
) {
override fun backendSpecificExplicitRoot(node: IrAnnotationContainer): Boolean {
val fqn = when (node) {
is IrFunction -> RuntimeNames.exportForCppRuntime
is IrClass -> RuntimeNames.exportTypeInfoAnnotation
else -> return false
}
return node.annotations.hasAnnotation(fqn)
}
override fun backendSpecificSerializeAllMembers(irClass: IrClass) = !KonanFakeOverrideClassFilter.needToConstructFakeOverrides(irClass)
}