From 31af1e6ca7cff023a1318028ac64c968b4b48a28 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Thu, 14 May 2020 13:33:51 +0300 Subject: [PATCH] [JS SCRIPT] Fix ScriptDependencyCompiler - Invoke KotlinIrLinker properly --- .../scripting/repl/js/JsScriptDependencyCompiler.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsScriptDependencyCompiler.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsScriptDependencyCompiler.kt index a77a84dcb30..c53de601cd9 100644 --- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsScriptDependencyCompiler.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsScriptDependencyCompiler.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.scripting.repl.js -import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureDescriptor import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl @@ -18,7 +17,6 @@ import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext import org.jetbrains.kotlin.ir.backend.js.emptyLoggingContext import org.jetbrains.kotlin.ir.backend.js.generateJsCode import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsIrLinker -import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerDesc import org.jetbrains.kotlin.ir.backend.js.utils.NameTables import org.jetbrains.kotlin.ir.declarations.impl.IrModuleFragmentImpl import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns @@ -54,9 +52,11 @@ class JsScriptDependencyCompiler( irBuiltIns.functionFactory = functionFactory val jsLinker = JsIrLinker(null, emptyLoggingContext, irBuiltIns, symbolTable, functionFactory, null) - val moduleFragment = IrModuleFragmentImpl(moduleDescriptor, irBuiltIns) val irDependencies = dependencies.map { jsLinker.deserializeFullModule(it, it.kotlinLibrary) } - val irProviders = generateTypicalIrProviderList(moduleDescriptor, irBuiltIns, symbolTable, deserializer = jsLinker) + val moduleFragment = irDependencies.last() + val irProviders = listOf(jsLinker) + + jsLinker.init(null) ExternalDependenciesGenerator(symbolTable, irProviders, configuration.languageVersionSettings) .generateUnboundSymbolsAsDependencies() @@ -75,8 +75,9 @@ class JsScriptDependencyCompiler( ExternalDependenciesGenerator(symbolTable, irProviders, configuration.languageVersionSettings) .generateUnboundSymbolsAsDependencies() moduleFragment.patchDeclarationParents() + jsLinker.postProcess() - moduleFragment.files += irDependencies.flatMap { it.files } + moduleFragment.files += irDependencies.filter { it !== moduleFragment }.flatMap { it.files } configuration.put(JSConfigurationKeys.MODULE_KIND, ModuleKind.PLAIN)