diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/BasicIrModuleDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/BasicIrModuleDeserializer.kt index 4e0806e4cb2..0bfe16d230e 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/BasicIrModuleDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/BasicIrModuleDeserializer.kt @@ -142,6 +142,13 @@ abstract class BasicIrModuleDeserializer( override fun deserializeReachableDeclarations() { moduleDeserializationState.deserializeReachableDeclarations() } + + override fun signatureDeserializerForFile(fileName: String): IdSignatureDeserializer { + val fileDeserializer = fileToDeserializerMap.entries.find { it.key.fileEntry.name == fileName }?.value + ?: error("No file deserializer for $fileName") + + return fileDeserializer.symbolDeserializer.signatureDeserializer + } } private class ModuleDeserializationState(val linker: KotlinIrLinker, val moduleDeserializer: BasicIrModuleDeserializer) { diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt index 8868f925e06..fcbe97e1477 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt @@ -92,6 +92,8 @@ abstract class IrModuleDeserializer(val moduleDescriptor: ModuleDescriptor, val open fun fileDeserializers(): Collection = error("Unsupported") val compatibilityMode: CompatibilityMode get() = CompatibilityMode(libraryAbiVersion) + + open fun signatureDeserializerForFile(fileName: String): IdSignatureDeserializer = error("Unsupported") } // Used to resolve built in symbols like `kotlin.ir.internal.*` or `kotlin.FunctionN` @@ -231,6 +233,10 @@ class IrModuleDeserializerWithBuiltIns( override fun postProcess() { delegate.postProcess() } + + override fun signatureDeserializerForFile(fileName: String): IdSignatureDeserializer { + return delegate.signatureDeserializerForFile(fileName) + } } open class CurrentModuleDeserializer( diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrSymbolDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrSymbolDeserializer.kt index ebc1cc679bb..31995ad7524 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrSymbolDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrSymbolDeserializer.kt @@ -103,7 +103,7 @@ class IrSymbolDeserializer( } } - private val signatureDeserializer = IdSignatureDeserializer(fileReader, fileSymbol) + val signatureDeserializer = IdSignatureDeserializer(fileReader, fileSymbol) fun deserializeIdSignature(index: Int): IdSignature { return signatureDeserializer.deserializeIdSignature(index) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt index 6a18a77ae2b..1760fe8b8aa 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt @@ -323,6 +323,11 @@ abstract class KotlinIrLinker( fun deserializeHeadersWithInlineBodies(moduleDescriptor: ModuleDescriptor, kotlinLibrary: KotlinLibrary): IrModuleFragment = deserializeIrModuleHeader(moduleDescriptor, kotlinLibrary, DeserializationStrategy.WITH_INLINE_BODIES) + + @Suppress("UNUSED_PARAMETER") + fun deserializeDirtyFiles(moduleDescriptor: ModuleDescriptor, kotlinLibrary: KotlinLibrary, dirtyFiles: Collection): IrModuleFragment { + return deserializeFullModule(moduleDescriptor, kotlinLibrary) + } } enum class DeserializationStrategy( diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt index e9efb59235a..ed69419b896 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt @@ -96,7 +96,7 @@ private val CompilerConfiguration.expectActualLinker: Boolean class KotlinFileSerializedData(val metadata: ByteArray, val irData: SerializedIrFile) -private fun IrMessageLogger?.toResolverLogger(): Logger { +fun IrMessageLogger?.toResolverLogger(): Logger { if (this == null) return DummyLogger return object : Logger {