[PL] Fix: Don't run partial linkage on early stages when no external dependencies have been loaded yet

This commit is contained in:
Dmitriy Dolovov
2023-04-17 19:19:44 +02:00
committed by Space Team
parent 000cf47c21
commit 87125d0703
13 changed files with 44 additions and 24 deletions
@@ -106,6 +106,8 @@ internal fun PsiToIrContext.psiToIr(
override fun resolveBySignatureInModule(signature: IdSignature, kind: IrDeserializer.TopLevelSymbolKind, moduleName: Name): IrSymbol {
error("Should not be called")
}
override fun postProcess(inOrAfterLinkageStep: Boolean) = Unit
}
} else {
val exportedDependencies = (moduleDescriptor.getExportedDependencies(config) + libraryToCacheModule?.let { listOf(it) }.orEmpty()).distinct()
@@ -224,7 +226,7 @@ internal fun PsiToIrContext.psiToIr(
expectDescriptorToSymbol = if (expectActualLinker) expectDescriptorToSymbol else null
).toKonanModule()
irDeserializer.postProcess()
irDeserializer.postProcess(inOrAfterLinkageStep = true)
// Enable lazy IR genration for newly-created symbols inside BE
stubGenerator.unboundSymbolGeneration = true
@@ -407,9 +407,9 @@ internal class KonanIrLinker(
}
}
override fun postProcess() {
override fun postProcess(inOrAfterLinkageStep: Boolean) {
stubGenerator.unboundSymbolGeneration = true
super.postProcess()
super.postProcess(inOrAfterLinkageStep)
}
private val inlineFunctionFiles = mutableMapOf<IrExternalPackageFragment, IrFile>()