[JS] Migrate checkers diagnostics test to IR backend
This commit is contained in:
committed by
Space Team
parent
cb5b26d2e7
commit
08041230f0
+15
-22
@@ -7,7 +7,11 @@ package org.jetbrains.kotlin.checkers
|
|||||||
|
|
||||||
import com.intellij.openapi.util.text.StringUtil
|
import com.intellij.openapi.util.text.StringUtil
|
||||||
import org.jetbrains.kotlin.ObsoleteTestInfrastructure
|
import org.jetbrains.kotlin.ObsoleteTestInfrastructure
|
||||||
|
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
|
||||||
|
import org.jetbrains.kotlin.cli.js.klib.TopDownAnalyzerFacadeForJSIR
|
||||||
|
import org.jetbrains.kotlin.cli.js.klib.TopDownAnalyzerFacadeForWasm
|
||||||
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.config.CommonConfigurationKeys
|
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||||
import org.jetbrains.kotlin.config.JvmTarget
|
import org.jetbrains.kotlin.config.JvmTarget
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
@@ -15,6 +19,7 @@ import org.jetbrains.kotlin.config.languageVersionSettings
|
|||||||
import org.jetbrains.kotlin.context.ModuleContext
|
import org.jetbrains.kotlin.context.ModuleContext
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
|
import org.jetbrains.kotlin.ir.backend.js.prepareAnalyzedSourceModule
|
||||||
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS
|
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS
|
||||||
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
|
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
|
||||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||||
@@ -56,31 +61,19 @@ abstract class AbstractDiagnosticsTestWithJsStdLib : AbstractDiagnosticsTest() {
|
|||||||
separateModules: Boolean,
|
separateModules: Boolean,
|
||||||
jvmTarget: JvmTarget
|
jvmTarget: JvmTarget
|
||||||
): JsAnalysisResult {
|
): JsAnalysisResult {
|
||||||
// TODO: support LANGUAGE directive in JS diagnostic tests
|
|
||||||
moduleTrace.record<ModuleDescriptor, ModuleKind>(MODULE_KIND, moduleContext.module, getModuleKind(files))
|
|
||||||
config.configuration.languageVersionSettings = languageVersionSettings
|
config.configuration.languageVersionSettings = languageVersionSettings
|
||||||
return TopDownAnalyzerFacadeForJS.analyzeFilesWithGivenTrace(
|
|
||||||
files, moduleTrace, moduleContext, config.configuration, CompilerEnvironment, config.project
|
val sourceModule = prepareAnalyzedSourceModule(
|
||||||
|
config.project,
|
||||||
|
files,
|
||||||
|
config.configuration,
|
||||||
|
config.configuration[JSConfigurationKeys.LIBRARIES]!!.toList(),
|
||||||
|
emptyList(),
|
||||||
|
AnalyzerWithCompilerReport(config.configuration),
|
||||||
|
analyzerFacade = TopDownAnalyzerFacadeForJSIR
|
||||||
)
|
)
|
||||||
}
|
|
||||||
|
|
||||||
private fun getModuleKind(ktFiles: List<KtFile>): ModuleKind {
|
return sourceModule.jsFrontEndResult.jsAnalysisResult as JsAnalysisResult
|
||||||
var kind = ModuleKind.PLAIN
|
|
||||||
for (file in ktFiles) {
|
|
||||||
val text = file.text
|
|
||||||
for (textLine in StringUtil.splitByLines(text)) {
|
|
||||||
var line = textLine.trim { it <= ' ' }
|
|
||||||
if (!line.startsWith("//")) continue
|
|
||||||
line = line.substring(2).trim { it <= ' ' }
|
|
||||||
val parts = StringUtil.split(line, ":")
|
|
||||||
if (parts.size != 2) continue
|
|
||||||
|
|
||||||
if (parts[0].trim { it <= ' ' } != "MODULE_KIND") continue
|
|
||||||
kind = ModuleKind.valueOf(parts[1].trim { it <= ' ' })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return kind
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getAdditionalDependencies(module: ModuleDescriptorImpl): List<ModuleDescriptorImpl> =
|
override fun getAdditionalDependencies(module: ModuleDescriptorImpl): List<ModuleDescriptorImpl> =
|
||||||
|
|||||||
Reference in New Issue
Block a user