[KLIB] Provide required API for IC invalidation
This commit is contained in:
committed by
TeamCityServer
parent
4ad2572085
commit
76690c081a
+7
@@ -142,6 +142,13 @@ abstract class BasicIrModuleDeserializer(
|
|||||||
override fun deserializeReachableDeclarations() {
|
override fun deserializeReachableDeclarations() {
|
||||||
moduleDeserializationState.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) {
|
private class ModuleDeserializationState(val linker: KotlinIrLinker, val moduleDeserializer: BasicIrModuleDeserializer) {
|
||||||
|
|||||||
+6
@@ -92,6 +92,8 @@ abstract class IrModuleDeserializer(val moduleDescriptor: ModuleDescriptor, val
|
|||||||
open fun fileDeserializers(): Collection<IrFileDeserializer> = error("Unsupported")
|
open fun fileDeserializers(): Collection<IrFileDeserializer> = error("Unsupported")
|
||||||
|
|
||||||
val compatibilityMode: CompatibilityMode get() = CompatibilityMode(libraryAbiVersion)
|
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`
|
// Used to resolve built in symbols like `kotlin.ir.internal.*` or `kotlin.FunctionN`
|
||||||
@@ -231,6 +233,10 @@ class IrModuleDeserializerWithBuiltIns(
|
|||||||
override fun postProcess() {
|
override fun postProcess() {
|
||||||
delegate.postProcess()
|
delegate.postProcess()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun signatureDeserializerForFile(fileName: String): IdSignatureDeserializer {
|
||||||
|
return delegate.signatureDeserializerForFile(fileName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class CurrentModuleDeserializer(
|
open class CurrentModuleDeserializer(
|
||||||
|
|||||||
+1
-1
@@ -103,7 +103,7 @@ class IrSymbolDeserializer(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val signatureDeserializer = IdSignatureDeserializer(fileReader, fileSymbol)
|
val signatureDeserializer = IdSignatureDeserializer(fileReader, fileSymbol)
|
||||||
|
|
||||||
fun deserializeIdSignature(index: Int): IdSignature {
|
fun deserializeIdSignature(index: Int): IdSignature {
|
||||||
return signatureDeserializer.deserializeIdSignature(index)
|
return signatureDeserializer.deserializeIdSignature(index)
|
||||||
|
|||||||
+5
@@ -323,6 +323,11 @@ abstract class KotlinIrLinker(
|
|||||||
|
|
||||||
fun deserializeHeadersWithInlineBodies(moduleDescriptor: ModuleDescriptor, kotlinLibrary: KotlinLibrary): IrModuleFragment =
|
fun deserializeHeadersWithInlineBodies(moduleDescriptor: ModuleDescriptor, kotlinLibrary: KotlinLibrary): IrModuleFragment =
|
||||||
deserializeIrModuleHeader(moduleDescriptor, kotlinLibrary, DeserializationStrategy.WITH_INLINE_BODIES)
|
deserializeIrModuleHeader(moduleDescriptor, kotlinLibrary, DeserializationStrategy.WITH_INLINE_BODIES)
|
||||||
|
|
||||||
|
@Suppress("UNUSED_PARAMETER")
|
||||||
|
fun deserializeDirtyFiles(moduleDescriptor: ModuleDescriptor, kotlinLibrary: KotlinLibrary, dirtyFiles: Collection<String>): IrModuleFragment {
|
||||||
|
return deserializeFullModule(moduleDescriptor, kotlinLibrary)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class DeserializationStrategy(
|
enum class DeserializationStrategy(
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ private val CompilerConfiguration.expectActualLinker: Boolean
|
|||||||
|
|
||||||
class KotlinFileSerializedData(val metadata: ByteArray, val irData: SerializedIrFile)
|
class KotlinFileSerializedData(val metadata: ByteArray, val irData: SerializedIrFile)
|
||||||
|
|
||||||
private fun IrMessageLogger?.toResolverLogger(): Logger {
|
fun IrMessageLogger?.toResolverLogger(): Logger {
|
||||||
if (this == null) return DummyLogger
|
if (this == null) return DummyLogger
|
||||||
|
|
||||||
return object : Logger {
|
return object : Logger {
|
||||||
|
|||||||
Reference in New Issue
Block a user