diff --git a/compiler/cli/cli-js/build.gradle.kts b/compiler/cli/cli-js/build.gradle.kts index 70d7c6f3adc..5b0714676de 100644 --- a/compiler/cli/cli-js/build.gradle.kts +++ b/compiler/cli/cli-js/build.gradle.kts @@ -11,6 +11,7 @@ dependencies { compile(project(":compiler:backend-common")) compile(project(":compiler:ir.backend.common")) compile(project(":compiler:ir.serialization.js")) + compile(project(":compiler:ir.tree.impl")) compile(project(":compiler:backend.js")) compile(project(":compiler:backend.wasm")) compile(project(":js:js.translator")) diff --git a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt index 0dd1041f90a..6f27f4362bb 100644 --- a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt +++ b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt @@ -232,6 +232,7 @@ class K2JsIrCompiler : CLICompiler() { AnalyzerWithCompilerReport(config.configuration), config.configuration, PhaseConfig(wasmPhases), + IrFactoryImpl, allDependencies = resolvedLibraries, friendDependencies = friendDependencies, exportedDeclarations = setOf(FqName("main")) diff --git a/compiler/ir/backend.wasm/build.gradle.kts b/compiler/ir/backend.wasm/build.gradle.kts index da35b6ed90c..0757e095a22 100644 --- a/compiler/ir/backend.wasm/build.gradle.kts +++ b/compiler/ir/backend.wasm/build.gradle.kts @@ -11,8 +11,6 @@ dependencies { compile(project(":compiler:ir.backend.common")) compile(project(":compiler:ir.serialization.common")) compile(project(":compiler:ir.serialization.js")) - compile(project(":compiler:ir.tree.persistent")) - compile(project(":compiler:ir.tree.impl")) compile(project(":js:js.ast")) compile(project(":js:js.frontend")) compile(project(":compiler:backend.js")) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmBackendContext.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmBackendContext.kt index 0a014d1627c..4287652ccc0 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmBackendContext.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmBackendContext.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.ir.backend.js.lower.JsInnerClassesSupport import org.jetbrains.kotlin.ir.builders.declarations.buildFun import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.symbols.impl.DescriptorlessExternalPackageFragmentSymbol @@ -39,7 +38,7 @@ class WasmBackendContext( override val builtIns = module.builtIns override var inVerbosePhase: Boolean = false override val scriptMode = false - override val irFactory: IrFactory = IrFactoryImpl + override val irFactory: IrFactory = symbolTable.irFactory // Place to store declarations excluded from code generation private val excludedDeclarations = mutableMapOf() 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 18fee60f04c..dace8b9002f 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 @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.backend.wasm.ir2wasm.generateStringLiteralsSupport import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.ir.backend.js.MainModule import org.jetbrains.kotlin.ir.backend.js.loadIr -import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl +import org.jetbrains.kotlin.ir.declarations.IrFactory import org.jetbrains.kotlin.ir.util.ExternalDependenciesGenerator import org.jetbrains.kotlin.ir.util.patchDeclarationParents import org.jetbrains.kotlin.library.KotlinLibrary @@ -34,15 +34,13 @@ fun compileWasm( analyzer: AbstractAnalyzerWithCompilerReport, configuration: CompilerConfiguration, phaseConfig: PhaseConfig, + irFactory: IrFactory, allDependencies: KotlinLibraryResolveResult, friendDependencies: List, exportedDeclarations: Set = emptySet() ): WasmCompilerResult { val (moduleFragment, dependencyModules, irBuiltIns, symbolTable, deserializer) = - loadIr( - project, mainModule, analyzer, configuration, allDependencies, friendDependencies, - IrFactoryImpl - ) + loadIr(project, mainModule, analyzer, configuration, allDependencies, friendDependencies, irFactory) val allModules = when (mainModule) { is MainModule.SourceFiles -> dependencyModules + listOf(moduleFragment) diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicWasmBoxTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicWasmBoxTest.kt index 5df93549f04..355b1a9479f 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicWasmBoxTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicWasmBoxTest.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.ir.backend.js.MainModule import org.jetbrains.kotlin.ir.backend.js.loadKlib +import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl import org.jetbrains.kotlin.js.config.JsConfig import org.jetbrains.kotlin.js.facade.TranslationUnit import org.jetbrains.kotlin.js.test.engines.ExternalTool @@ -137,6 +138,7 @@ abstract class BasicWasmBoxTest( analyzer = AnalyzerWithCompilerReport(config.configuration), configuration = config.configuration, phaseConfig = phaseConfig, + irFactory = IrFactoryImpl, // TODO: Bypass the resolver fow wasm. allDependencies = KotlinLibraryResolverResultImpl(listOf(KotlinResolvedLibraryImpl(wasmRuntimeKlib))), friendDependencies = emptyList(),