[K/N] Move KonanIrModuleSerializer to serialization.native

KT-64392
This commit is contained in:
Sergej Jaskiewicz
2023-12-18 20:56:33 +01:00
committed by Space Team
parent 199d9d4880
commit a1970d3d57
4 changed files with 12 additions and 7 deletions
@@ -1,12 +1,17 @@
/*
* 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 package org.jetbrains.kotlin.backend.konan.serialization
import org.jetbrains.kotlin.backend.common.serialization.CompatibilityMode import org.jetbrains.kotlin.backend.common.serialization.CompatibilityMode
import org.jetbrains.kotlin.backend.common.serialization.IrModuleSerializer import org.jetbrains.kotlin.backend.common.serialization.IrModuleSerializer
import org.jetbrains.kotlin.backend.konan.ir.interop.IrProviderForCEnumAndCStructStubs
import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.ir.IrBuiltIns import org.jetbrains.kotlin.ir.IrBuiltIns
import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.declarations.IrFile
import org.jetbrains.kotlin.ir.util.IrMessageLogger import org.jetbrains.kotlin.ir.util.IrMessageLogger
import org.jetbrains.kotlin.name.NativeStandardInteropNames
class KonanIrModuleSerializer( class KonanIrModuleSerializer(
messageLogger: IrMessageLogger, messageLogger: IrMessageLogger,
@@ -28,7 +33,7 @@ class KonanIrModuleSerializer(
// We may switch from IR generation to LazyIR later (at least for structs; enums are tricky) // We may switch from IR generation to LazyIR later (at least for structs; enums are tricky)
// without changing kotlin libraries that depend on interop libraries. // without changing kotlin libraries that depend on interop libraries.
override fun backendSpecificFileFilter(file: IrFile): Boolean = override fun backendSpecificFileFilter(file: IrFile): Boolean =
file.fileEntry.name != IrProviderForCEnumAndCStructStubs.cTypeDefinitionsFileName file.fileEntry.name != NativeStandardInteropNames.cTypeDefinitionsFileName
override fun createSerializerForFile(file: IrFile): KonanIrFileSerializer = override fun createSerializerForFile(file: IrFile): KonanIrFileSerializer =
KonanIrFileSerializer(messageLogger, KonanDeclarationTable(globalDeclarationTable), KonanIrFileSerializer(messageLogger, KonanDeclarationTable(globalDeclarationTable),
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.name package org.jetbrains.kotlin.name
@Suppress("ConstPropertyName")
object NativeStandardInteropNames { object NativeStandardInteropNames {
val cInteropPackage = FqName("kotlinx.cinterop") val cInteropPackage = FqName("kotlinx.cinterop")
@@ -32,4 +33,6 @@ object NativeStandardInteropNames {
val syntheticPackages = setOf(cNamesPackage, objCNamesPackage) val syntheticPackages = setOf(cNamesPackage, objCNamesPackage)
} }
const val cTypeDefinitionsFileName = "CTypeDefinitions"
} }
@@ -117,8 +117,4 @@ internal class IrProviderForCEnumAndCStructStubs(
} }
} }
} }
companion object {
const val cTypeDefinitionsFileName = "CTypeDefinitions"
}
} }
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.ir.util.NaiveSourceBasedFileEntryImpl
import org.jetbrains.kotlin.library.KotlinAbiVersion import org.jetbrains.kotlin.library.KotlinAbiVersion
import org.jetbrains.kotlin.library.KotlinLibrary import org.jetbrains.kotlin.library.KotlinLibrary
import org.jetbrains.kotlin.library.metadata.isInteropLibrary import org.jetbrains.kotlin.library.metadata.isInteropLibrary
import org.jetbrains.kotlin.name.NativeStandardInteropNames
internal class KonanInteropModuleDeserializer( internal class KonanInteropModuleDeserializer(
moduleDescriptor: ModuleDescriptor, moduleDescriptor: ModuleDescriptor,
@@ -65,7 +66,7 @@ internal class KonanInteropModuleDeserializer(
private fun getIrFile(packageFragment: PackageFragmentDescriptor): IrFile = fileMap.getOrPut(packageFragment) { private fun getIrFile(packageFragment: PackageFragmentDescriptor): IrFile = fileMap.getOrPut(packageFragment) {
IrFileImpl( IrFileImpl(
NaiveSourceBasedFileEntryImpl(IrProviderForCEnumAndCStructStubs.cTypeDefinitionsFileName), NaiveSourceBasedFileEntryImpl(NativeStandardInteropNames.cTypeDefinitionsFileName),
packageFragment, packageFragment,
moduleFragment moduleFragment
).also { ).also {