[JS SCRIPT] Fix ScriptDependencyCompiler
- Invoke KotlinIrLinker properly
This commit is contained in:
+6
-5
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user