From 8492791bf3e0e9d44c6e9581902084c56d6b56fb Mon Sep 17 00:00:00 2001 From: Alexander Korepanov Date: Mon, 2 Jan 2023 16:24:53 +0100 Subject: [PATCH] [JS IR IC] Check the unbound symbols in the IC infrastructure --- .../org/jetbrains/kotlin/ir/backend/js/ic/CacheUpdater.kt | 4 ++-- .../jetbrains/kotlin/ir/backend/js/ic/JsIrLinkerLoader.kt | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/CacheUpdater.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/CacheUpdater.kt index d1a552aad33..44ff6ad065f 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/CacheUpdater.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/CacheUpdater.kt @@ -672,7 +672,7 @@ class CacheUpdater( val compilerForIC = compilerInterfaceFactory.createCompilerForIC(mainModuleFragment, compilerConfiguration) // Load declarations referenced during `context` initialization - loadedIr.linker.loadUnboundSymbols(true) + loadedIr.linker.loadUnboundSymbols() val dirtyFiles = dirtyFileExports.entries.associateTo(HashMap(dirtyFileExports.size)) { it.key to HashSet(it.value.keys) } @@ -756,7 +756,7 @@ fun rebuildCacheForDirtyFiles( val compilerWithIC = JsIrCompilerWithIC(currentIrModule, configuration, JsGenerationGranularity.PER_MODULE, exportedDeclarations) // Load declarations referenced during `context` initialization - jsIrLinker.loadUnboundSymbols(true) + jsIrLinker.loadUnboundSymbols() val fragments = compilerWithIC.compile(irModules.values, dirtyIrFiles, mainArguments).map { it() } diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/JsIrLinkerLoader.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/JsIrLinkerLoader.kt index e8bc9b704a8..c14520bc13b 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/JsIrLinkerLoader.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/JsIrLinkerLoader.kt @@ -30,12 +30,10 @@ import org.jetbrains.kotlin.psi2ir.descriptors.IrBuiltInsOverDescriptors import org.jetbrains.kotlin.psi2ir.generators.TypeTranslatorImpl import org.jetbrains.kotlin.storage.LockBasedStorageManager -internal fun JsIrLinker.loadUnboundSymbols(checkNoUnbound: Boolean) { +internal fun JsIrLinker.loadUnboundSymbols() { ExternalDependenciesGenerator(symbolTable, listOf(this)).generateUnboundSymbolsAsDependencies() postProcess() - if (checkNoUnbound) { - checkNoUnboundSymbols(symbolTable, "at the end of IR linkage process") - } + checkNoUnboundSymbols(symbolTable, "at the end of IR linkage process") } internal class JsIrLinkerLoader( @@ -130,7 +128,7 @@ internal class JsIrLinkerLoader( } } - jsIrLinker.loadUnboundSymbols(false) + jsIrLinker.loadUnboundSymbols() return LoadedJsIr(jsIrLinker, irModules) } }