From f5e59194b5f9067f2b1d28265ff3cb68870bda72 Mon Sep 17 00:00:00 2001 From: Igor Laevsky Date: Mon, 28 Jun 2021 18:44:41 +0300 Subject: [PATCH] WASM: Fix linker issues around fake overrides --- .../org/jetbrains/kotlin/backend/wasm/compiler.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/compiler.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/compiler.kt index 2a0dae91ee2..c43db145602 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/compiler.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/compiler.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.backend.js.MainModule import org.jetbrains.kotlin.ir.backend.js.loadIr import org.jetbrains.kotlin.ir.declarations.IrFactory import org.jetbrains.kotlin.ir.util.ExternalDependenciesGenerator +import org.jetbrains.kotlin.ir.util.noUnboundLeft import org.jetbrains.kotlin.ir.util.patchDeclarationParents import org.jetbrains.kotlin.library.KotlinLibrary import org.jetbrains.kotlin.library.resolver.KotlinLibraryResolveResult @@ -55,21 +56,20 @@ fun compileWasm( // Load declarations referenced during `context` initialization allModules.forEach { - val irProviders = generateTypicalIrProviderList(it.descriptor, irBuiltIns, symbolTable, deserializer) - ExternalDependenciesGenerator(symbolTable, irProviders) - .generateUnboundSymbolsAsDependencies() + ExternalDependenciesGenerator(symbolTable, listOf(deserializer)).generateUnboundSymbolsAsDependencies() } val irFiles = allModules.flatMap { it.files } - moduleFragment.files.clear() moduleFragment.files += irFiles // Create stubs - val irProviders = generateTypicalIrProviderList(moduleDescriptor, irBuiltIns, symbolTable, deserializer) - ExternalDependenciesGenerator(symbolTable, irProviders).generateUnboundSymbolsAsDependencies() + ExternalDependenciesGenerator(symbolTable, listOf(deserializer)).generateUnboundSymbolsAsDependencies() moduleFragment.patchDeclarationParents() + deserializer.postProcess() + symbolTable.noUnboundLeft("Unbound symbols at the end of linker") + wasmPhases.invokeToplevel(phaseConfig, context, moduleFragment) val compiledWasmModule = WasmCompiledModuleFragment()