Remove dependency of serialization.js on cli

To break up compilation dependency of JS IR/WASM backends on JVM
backend.

 #KT-35854 Fixed
This commit is contained in:
Alexander Udalov
2020-01-21 23:24:22 +01:00
parent dcf6a2199a
commit d27bb76fd0
11 changed files with 62 additions and 39 deletions
@@ -71,6 +71,7 @@ fun buildKLib(
allDependencies: KotlinLibraryResolveResult, allDependencies: KotlinLibraryResolveResult,
commonSources: List<String> commonSources: List<String>
) { ) {
val configuration = buildConfiguration(environment, moduleName)
generateKLib( generateKLib(
project = environment.project, project = environment.project,
files = sources.map { source -> files = sources.map { source ->
@@ -80,7 +81,8 @@ fun buildKLib(
} }
file file
}, },
configuration = buildConfiguration(environment, moduleName), analyzer = AnalyzerWithCompilerReport(configuration),
configuration = configuration,
allDependencies = allDependencies, allDependencies = allDependencies,
friendDependencies = emptyList(), friendDependencies = emptyList(),
outputKlibPath = outputPath, outputKlibPath = outputPath,
@@ -144,4 +146,4 @@ private fun messageCollectorLogger(collector: MessageCollector) = object : Logge
(collector as? GroupingMessageCollector)?.flush() (collector as? GroupingMessageCollector)?.flush()
kotlin.error(message) kotlin.error(message)
} }
} }
-1
View File
@@ -11,7 +11,6 @@ dependencies {
compile(project(":compiler:cli")) compile(project(":compiler:cli"))
compile(project(":compiler:frontend")) compile(project(":compiler:frontend"))
compile(project(":compiler:backend-common")) compile(project(":compiler:backend-common"))
compile(project(":compiler:backend"))
compile(project(":compiler:ir.backend.common")) compile(project(":compiler:ir.backend.common"))
compile(project(":compiler:ir.serialization.js")) compile(project(":compiler:ir.serialization.js"))
compile(project(":compiler:backend.js")) compile(project(":compiler:backend.js"))
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoot import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoot
import org.jetbrains.kotlin.cli.common.extensions.ScriptEvaluationExtension import org.jetbrains.kotlin.cli.common.extensions.ScriptEvaluationExtension
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.* import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.*
import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector
import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.common.messages.MessageCollector
@@ -29,15 +30,14 @@ import org.jetbrains.kotlin.config.IncrementalCompilation
import org.jetbrains.kotlin.config.Services import org.jetbrains.kotlin.config.Services
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.incremental.js.IncrementalNextRoundChecker
import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider
import org.jetbrains.kotlin.incremental.js.IncrementalNextRoundChecker
import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumer import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumer
import org.jetbrains.kotlin.ir.backend.js.* import org.jetbrains.kotlin.ir.backend.js.*
import org.jetbrains.kotlin.js.config.EcmaVersion import org.jetbrains.kotlin.js.config.EcmaVersion
import org.jetbrains.kotlin.js.config.JSConfigurationKeys import org.jetbrains.kotlin.js.config.JSConfigurationKeys
import org.jetbrains.kotlin.js.config.JsConfig import org.jetbrains.kotlin.js.config.JsConfig
import org.jetbrains.kotlin.js.config.SourceMapSourceEmbedding import org.jetbrains.kotlin.js.config.SourceMapSourceEmbedding
import org.jetbrains.kotlin.library.KotlinLibrary
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.serialization.js.ModuleKind import org.jetbrains.kotlin.serialization.js.ModuleKind
@@ -189,6 +189,7 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
generateKLib( generateKLib(
project = config.project, project = config.project,
files = sourcesFiles, files = sourcesFiles,
analyzer = AnalyzerWithCompilerReport(config.configuration),
configuration = config.configuration, configuration = config.configuration,
allDependencies = resolvedLibraries, allDependencies = resolvedLibraries,
friendDependencies = friendDependencies, friendDependencies = friendDependencies,
@@ -220,6 +221,7 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
compile( compile(
projectJs, projectJs,
mainModule, mainModule,
AnalyzerWithCompilerReport(config.configuration),
config.configuration, config.configuration,
phaseConfig, phaseConfig,
allDependencies = resolvedLibraries, allDependencies = resolvedLibraries,
@@ -396,4 +398,4 @@ fun loadPluginsForTests(configuration: CompilerConfiguration): ExitCode {
pluginClasspaths = jars.map { it.canonicalPath } + pluginClasspaths pluginClasspaths = jars.map { it.canonicalPath } + pluginClasspaths
return PluginCliParser.loadPluginsSafe(pluginClasspaths, mutableListOf(), configuration) return PluginCliParser.loadPluginsSafe(pluginClasspaths, mutableListOf(), configuration)
} }
@@ -20,10 +20,14 @@ import com.intellij.openapi.util.io.FileUtil.toSystemDependentName
import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.* import com.intellij.psi.*
import com.intellij.psi.util.PsiFormatUtil import com.intellij.psi.util.PsiFormatUtil
import org.jetbrains.kotlin.analyzer.AbstractAnalyzerWithCompilerReport
import org.jetbrains.kotlin.analyzer.AnalysisResult import org.jetbrains.kotlin.analyzer.AnalysisResult
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.* import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.*
import org.jetbrains.kotlin.codegen.state.IncompatibleClassTrackerImpl import org.jetbrains.kotlin.codegen.state.IncompatibleClassTrackerImpl
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.languageVersionSettings
import org.jetbrains.kotlin.diagnostics.* import org.jetbrains.kotlin.diagnostics.*
import org.jetbrains.kotlin.diagnostics.DiagnosticUtils.sortedDiagnostics import org.jetbrains.kotlin.diagnostics.DiagnosticUtils.sortedDiagnostics
import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages
@@ -43,8 +47,13 @@ import org.jetbrains.kotlin.serialization.deserialization.IncompatibleVersionErr
class AnalyzerWithCompilerReport( class AnalyzerWithCompilerReport(
private val messageCollector: MessageCollector, private val messageCollector: MessageCollector,
private val languageVersionSettings: LanguageVersionSettings private val languageVersionSettings: LanguageVersionSettings
) { ) : AbstractAnalyzerWithCompilerReport {
lateinit var analysisResult: AnalysisResult override lateinit var analysisResult: AnalysisResult
constructor(configuration: CompilerConfiguration) : this(
configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) ?: MessageCollector.NONE,
configuration.languageVersionSettings
)
private fun reportIncompleteHierarchies() { private fun reportIncompleteHierarchies() {
val bindingContext = analysisResult.bindingContext val bindingContext = analysisResult.bindingContext
@@ -99,11 +108,10 @@ class AnalyzerWithCompilerReport(
class SyntaxErrorReport(val isHasErrors: Boolean, val isAllErrorsAtEof: Boolean) class SyntaxErrorReport(val isHasErrors: Boolean, val isAllErrorsAtEof: Boolean)
fun hasErrors(): Boolean { override fun hasErrors(): Boolean =
return messageCollector.hasErrors() messageCollector.hasErrors()
}
fun analyzeAndReport(files: Collection<KtFile>, analyze: () -> AnalysisResult) { override fun analyzeAndReport(files: Collection<KtFile>, analyze: () -> AnalysisResult) {
analysisResult = analyze() analysisResult = analyze()
ExperimentalUsageChecker.checkCompilerArguments( ExperimentalUsageChecker.checkCompilerArguments(
analysisResult.moduleDescriptor, languageVersionSettings, analysisResult.moduleDescriptor, languageVersionSettings,
@@ -0,0 +1,16 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.analyzer
import org.jetbrains.kotlin.psi.KtFile
interface AbstractAnalyzerWithCompilerReport {
val analysisResult: AnalysisResult
fun analyzeAndReport(files: Collection<KtFile>, analyze: () -> AnalysisResult)
fun hasErrors(): Boolean
}
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.ir.backend.js package org.jetbrains.kotlin.ir.backend.js
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.analyzer.AbstractAnalyzerWithCompilerReport
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.common.phaser.invokeToplevel import org.jetbrains.kotlin.backend.common.phaser.invokeToplevel
import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.CompilerConfiguration
@@ -48,6 +49,7 @@ class CompilerResult(
fun compile( fun compile(
project: Project, project: Project,
mainModule: MainModule, mainModule: MainModule,
analyzer: AbstractAnalyzerWithCompilerReport,
configuration: CompilerConfiguration, configuration: CompilerConfiguration,
phaseConfig: PhaseConfig, phaseConfig: PhaseConfig,
allDependencies: KotlinLibraryResolveResult, allDependencies: KotlinLibraryResolveResult,
@@ -58,7 +60,7 @@ fun compile(
generateDceJs: Boolean = false generateDceJs: Boolean = false
): CompilerResult { ): CompilerResult {
val (moduleFragment: IrModuleFragment, dependencyModules, irBuiltIns, symbolTable, deserializer) = val (moduleFragment: IrModuleFragment, dependencyModules, irBuiltIns, symbolTable, deserializer) =
loadIr(project, mainModule, configuration, allDependencies, friendDependencies) loadIr(project, mainModule, analyzer, configuration, allDependencies, friendDependencies)
val moduleDescriptor = moduleFragment.descriptor val moduleDescriptor = moduleFragment.descriptor
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.backend.wasm package org.jetbrains.kotlin.backend.wasm
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.analyzer.AbstractAnalyzerWithCompilerReport
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.common.phaser.invokeToplevel import org.jetbrains.kotlin.backend.common.phaser.invokeToplevel
import org.jetbrains.kotlin.backend.wasm.codegen.IrModuleToWasm import org.jetbrains.kotlin.backend.wasm.codegen.IrModuleToWasm
@@ -25,6 +26,7 @@ data class WasmCompilerResult(val wat: String, val js: String)
fun compileWasm( fun compileWasm(
project: Project, project: Project,
files: List<KtFile>, files: List<KtFile>,
analyzer: AbstractAnalyzerWithCompilerReport,
configuration: CompilerConfiguration, configuration: CompilerConfiguration,
phaseConfig: PhaseConfig, phaseConfig: PhaseConfig,
allDependencies: KotlinLibraryResolveResult, allDependencies: KotlinLibraryResolveResult,
@@ -32,7 +34,7 @@ fun compileWasm(
exportedDeclarations: Set<FqName> = emptySet() exportedDeclarations: Set<FqName> = emptySet()
): WasmCompilerResult { ): WasmCompilerResult {
val (moduleFragment, dependencyModules, irBuiltIns, symbolTable, deserializer) = val (moduleFragment, dependencyModules, irBuiltIns, symbolTable, deserializer) =
loadIr(project, MainModule.SourceFiles(files), configuration, allDependencies, friendDependencies) loadIr(project, MainModule.SourceFiles(files), analyzer, configuration, allDependencies, friendDependencies)
val moduleDescriptor = moduleFragment.descriptor val moduleDescriptor = moduleFragment.descriptor
val context = WasmBackendContext(moduleDescriptor, irBuiltIns, symbolTable, moduleFragment, exportedDeclarations, configuration) val context = WasmBackendContext(moduleDescriptor, irBuiltIns, symbolTable, moduleFragment, exportedDeclarations, configuration)
@@ -57,4 +59,4 @@ fun compileWasm(
wasmPhases.invokeToplevel(phaseConfig, context, moduleFragment) wasmPhases.invokeToplevel(phaseConfig, context, moduleFragment)
return IrModuleToWasm(context).generateModule(moduleFragment) return IrModuleToWasm(context).generateModule(moduleFragment)
} }
@@ -8,7 +8,6 @@ dependencies {
compile(project(":compiler:ir.psi2ir")) compile(project(":compiler:ir.psi2ir"))
compile(project(":compiler:ir.serialization.common")) compile(project(":compiler:ir.serialization.common"))
compile(project(":js:js.frontend")) compile(project(":js:js.frontend"))
compile(project(":compiler:cli"))
compileOnly(intellijCoreDep()) { includeJars("intellij-core") } compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.ir.backend.js
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VfsUtilCore import com.intellij.openapi.vfs.VfsUtilCore
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.analyzer.AbstractAnalyzerWithCompilerReport
import org.jetbrains.kotlin.analyzer.AnalysisResult import org.jetbrains.kotlin.analyzer.AnalysisResult
import org.jetbrains.kotlin.backend.common.LoggingContext import org.jetbrains.kotlin.backend.common.LoggingContext
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
@@ -18,11 +19,6 @@ import org.jetbrains.kotlin.backend.common.serialization.KlibIrVersion
import org.jetbrains.kotlin.backend.common.serialization.metadata.DynamicTypeDeserializer import org.jetbrains.kotlin.backend.common.serialization.metadata.DynamicTypeDeserializer
import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
@@ -59,11 +55,8 @@ import org.jetbrains.kotlin.storage.LockBasedStorageManager
import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.utils.DFS import org.jetbrains.kotlin.utils.DFS
import java.io.File import java.io.File
import java.util.*
import kotlin.collections.ArrayList
import org.jetbrains.kotlin.konan.file.File as KFile import org.jetbrains.kotlin.konan.file.File as KFile
val KotlinLibrary.moduleName: String val KotlinLibrary.moduleName: String
get() = manifestProperties.getProperty(KLIB_PROPERTY_UNIQUE_NAME) get() = manifestProperties.getProperty(KLIB_PROPERTY_UNIQUE_NAME)
@@ -96,6 +89,7 @@ class KotlinFileSerializedData(val metadata: ByteArray, val irData: SerializedIr
fun generateKLib( fun generateKLib(
project: Project, project: Project,
files: List<KtFile>, files: List<KtFile>,
analyzer: AbstractAnalyzerWithCompilerReport,
configuration: CompilerConfiguration, configuration: CompilerConfiguration,
allDependencies: KotlinLibraryResolveResult, allDependencies: KotlinLibraryResolveResult,
friendDependencies: List<KotlinLibrary>, friendDependencies: List<KotlinLibrary>,
@@ -131,7 +125,8 @@ fun generateKLib(
icData = emptyList() icData = emptyList()
} }
val depsDescriptors = ModulesStructure(project, MainModule.SourceFiles(files), configuration, allDependencies, friendDependencies) val depsDescriptors =
ModulesStructure(project, MainModule.SourceFiles(files), analyzer, configuration, allDependencies, friendDependencies)
val psi2IrContext = runAnalysisAndPreparePsi2Ir(depsDescriptors) val psi2IrContext = runAnalysisAndPreparePsi2Ir(depsDescriptors)
@@ -180,11 +175,12 @@ private fun sortDependencies(dependencies: List<KotlinLibrary>, mapping: Map<Kot
fun loadIr( fun loadIr(
project: Project, project: Project,
mainModule: MainModule, mainModule: MainModule,
analyzer: AbstractAnalyzerWithCompilerReport,
configuration: CompilerConfiguration, configuration: CompilerConfiguration,
allDependencies: KotlinLibraryResolveResult, allDependencies: KotlinLibraryResolveResult,
friendDependencies: List<KotlinLibrary> friendDependencies: List<KotlinLibrary>
): IrModuleInfo { ): IrModuleInfo {
val depsDescriptors = ModulesStructure(project, mainModule, configuration, allDependencies, friendDependencies) val depsDescriptors = ModulesStructure(project, mainModule, analyzer, configuration, allDependencies, friendDependencies)
when (mainModule) { when (mainModule) {
is MainModule.SourceFiles -> { is MainModule.SourceFiles -> {
@@ -323,6 +319,7 @@ sealed class MainModule {
private class ModulesStructure( private class ModulesStructure(
private val project: Project, private val project: Project,
private val mainModule: MainModule, private val mainModule: MainModule,
private val analyzer: AbstractAnalyzerWithCompilerReport,
val compilerConfiguration: CompilerConfiguration, val compilerConfiguration: CompilerConfiguration,
val allDependencies: KotlinLibraryResolveResult, val allDependencies: KotlinLibraryResolveResult,
private val friendDependencies: List<KotlinLibrary> private val friendDependencies: List<KotlinLibrary>
@@ -345,16 +342,7 @@ private class ModulesStructure(
require(mainModule is MainModule.SourceFiles) require(mainModule is MainModule.SourceFiles)
val files = mainModule.files val files = mainModule.files
// TODO: Should we not provide default message collector? analyzer.analyzeAndReport(files) {
val messageCollector: MessageCollector =
compilerConfiguration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) ?: MessageCollector.NONE
val analyzerWithCompilerReport = AnalyzerWithCompilerReport(
messageCollector,
compilerConfiguration.languageVersionSettings
)
analyzerWithCompilerReport.analyzeAndReport(files) {
TopDownAnalyzerFacadeForJSIR.analyzeFiles( TopDownAnalyzerFacadeForJSIR.analyzeFiles(
files, files,
project, project,
@@ -368,12 +356,12 @@ private class ModulesStructure(
ProgressIndicatorAndCompilationCanceledStatus.checkCanceled() ProgressIndicatorAndCompilationCanceledStatus.checkCanceled()
val analysisResult = analyzerWithCompilerReport.analysisResult val analysisResult = analyzer.analysisResult
if (IncrementalCompilation.isEnabledForJs()) { if (IncrementalCompilation.isEnabledForJs()) {
/** can throw [IncrementalNextRoundException] */ /** can throw [IncrementalNextRoundException] */
compareMetadataAndGoToNextICRoundIfNeeded(analysisResult, compilerConfiguration, files) compareMetadataAndGoToNextICRoundIfNeeded(analysisResult, compilerConfiguration, files)
} }
if (analyzerWithCompilerReport.hasErrors() || analysisResult !is JsAnalysisResult) if (analyzer.hasErrors() || analysisResult !is JsAnalysisResult)
throw JsIrCompilationError throw JsIrCompilationError
TopDownAnalyzerFacadeForJSIR.checkForErrors(files, analysisResult.bindingContext) TopDownAnalyzerFacadeForJSIR.checkForErrors(files, analysisResult.bindingContext)
@@ -557,4 +545,4 @@ private fun KlibMetadataIncrementalSerializer(
metadataVersion = configuration.metadataVersion, metadataVersion = configuration.metadataVersion,
descriptorTable = descriptorTable, descriptorTable = descriptorTable,
skipExpects = !configuration.klibMpp skipExpects = !configuration.klibMpp
) )
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.js.test
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.common.phaser.toPhaseMap import org.jetbrains.kotlin.backend.common.phaser.toPhaseMap
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.js.messageCollectorLogger import org.jetbrains.kotlin.cli.js.messageCollectorLogger
import org.jetbrains.kotlin.ir.backend.js.* import org.jetbrains.kotlin.ir.backend.js.*
@@ -113,6 +114,7 @@ abstract class BasicIrBoxTest(
val compiledModule = compile( val compiledModule = compile(
project = config.project, project = config.project,
mainModule = MainModule.SourceFiles(filesToCompile), mainModule = MainModule.SourceFiles(filesToCompile),
analyzer = AnalyzerWithCompilerReport(config.configuration),
configuration = config.configuration, configuration = config.configuration,
phaseConfig = phaseConfig, phaseConfig = phaseConfig,
allDependencies = resolvedLibraries, allDependencies = resolvedLibraries,
@@ -140,6 +142,7 @@ abstract class BasicIrBoxTest(
generateKLib( generateKLib(
project = config.project, project = config.project,
files = filesToCompile, files = filesToCompile,
analyzer = AnalyzerWithCompilerReport(config.configuration),
configuration = config.configuration, configuration = config.configuration,
allDependencies = resolvedLibraries, allDependencies = resolvedLibraries,
friendDependencies = emptyList(), friendDependencies = emptyList(),
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.common.phaser.toPhaseMap import org.jetbrains.kotlin.backend.common.phaser.toPhaseMap
import org.jetbrains.kotlin.backend.wasm.compileWasm import org.jetbrains.kotlin.backend.wasm.compileWasm
import org.jetbrains.kotlin.backend.wasm.wasmPhases import org.jetbrains.kotlin.backend.wasm.wasmPhases
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.config.CommonConfigurationKeys
@@ -112,6 +113,7 @@ abstract class BasicWasmBoxTest(
val compilerResult = compileWasm( val compilerResult = compileWasm(
project = config.project, project = config.project,
files = filesToCompile, files = filesToCompile,
analyzer = AnalyzerWithCompilerReport(config.configuration),
configuration = config.configuration, configuration = config.configuration,
phaseConfig = phaseConfig, phaseConfig = phaseConfig,
// TODO: Bypass the resolver fow wasm. // TODO: Bypass the resolver fow wasm.