Move CompilerEnvironment from 'frontend' to 'cli'
This is needed in order to have a single convenient place where to register frontend services implemented _outside_ of the 'frontend' module, such as the control flow analysis, extracted to a separate module in a subsequent commit.
This commit is contained in:
committed by
Alexander Udalov
parent
3efbca85ea
commit
ca5a35b4b3
+7
-5
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.platform.CommonPlatforms
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.resolve.BindingTrace
|
||||
import org.jetbrains.kotlin.resolve.CompilerEnvironment
|
||||
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
|
||||
import org.jetbrains.kotlin.serialization.NonStableParameterNamesSerializationTest
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
@@ -61,15 +62,16 @@ class InteropFunctionsWithNonStableParameterNamesDiagnosticsTest : AbstractDiagn
|
||||
jvmTarget: JvmTarget
|
||||
): AnalysisResult {
|
||||
return CommonResolverForModuleFactory.analyzeFiles(
|
||||
files = files,
|
||||
moduleName = moduleContext.module.name,
|
||||
files,
|
||||
moduleContext.module.name,
|
||||
dependOnBuiltIns = true,
|
||||
languageVersionSettings = languageVersionSettings,
|
||||
targetPlatform = CommonPlatforms.defaultCommonPlatform,
|
||||
languageVersionSettings,
|
||||
CommonPlatforms.defaultCommonPlatform,
|
||||
CompilerEnvironment,
|
||||
capabilities = mapOf(
|
||||
// MODULE_FILES to files
|
||||
),
|
||||
dependenciesContainer = CommonDependenciesContainerImpl(moduleContext.module.allDependencyModules)
|
||||
CommonDependenciesContainerImpl(moduleContext.module.allDependencyModules)
|
||||
) { content ->
|
||||
environment.createPackagePartProvider(content.moduleContentScope)
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.js.resolve.JsPlatformAnalyzerServices
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
||||
import org.jetbrains.kotlin.resolve.BindingTraceContext
|
||||
import org.jetbrains.kotlin.resolve.CompilerEnvironment
|
||||
import org.jetbrains.kotlin.serialization.AbstractVersionRequirementTest
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
@@ -47,13 +48,13 @@ class JsVersionRequirementTest : AbstractVersionRequirementTest() {
|
||||
}
|
||||
val trace = BindingTraceContext()
|
||||
val analysisResult = TopDownAnalyzerFacadeForJS.analyzeFilesWithGivenTrace(
|
||||
ktFiles, trace, createModule(environment), environment.configuration
|
||||
ktFiles, trace, createModule(environment), environment.configuration, CompilerEnvironment,
|
||||
)
|
||||
|
||||
// There are INVISIBLE_REFERENCE errors on RequireKotlin and K2JSTranslator refuses to translate the code otherwise
|
||||
trace.clearDiagnostics()
|
||||
|
||||
val result = K2JSTranslator(JsConfig(environment.project, environment.configuration)).translate(
|
||||
val result = K2JSTranslator(JsConfig(environment.project, environment.configuration, CompilerEnvironment)).translate(
|
||||
object : JsConfig.Reporter() {}, ktFiles, MainCallParameters.noCall(), analysisResult
|
||||
) as TranslationResult.Success
|
||||
result.getOutputFiles(File(outputDirectory, "lib.js"), null, null).writeAllTo(outputDirectory)
|
||||
@@ -62,7 +63,7 @@ class JsVersionRequirementTest : AbstractVersionRequirementTest() {
|
||||
override fun loadModule(directory: File): ModuleDescriptor {
|
||||
val environment = createEnvironment(extraDependencies = listOf(File(directory, "lib.meta.js")))
|
||||
return TopDownAnalyzerFacadeForJS.analyzeFilesWithGivenTrace(
|
||||
emptyList(), BindingTraceContext(), createModule(environment), environment.configuration
|
||||
emptyList(), BindingTraceContext(), createModule(environment), environment.configuration, CompilerEnvironment,
|
||||
).moduleDescriptor
|
||||
}
|
||||
|
||||
@@ -85,7 +86,7 @@ class JsVersionRequirementTest : AbstractVersionRequirementTest() {
|
||||
)
|
||||
|
||||
private fun createModule(environment: KotlinCoreEnvironment): MutableModuleContext {
|
||||
val config = JsConfig(environment.project, environment.configuration)
|
||||
val config = JsConfig(environment.project, environment.configuration, CompilerEnvironment)
|
||||
return ContextForNewModule(
|
||||
ProjectContext(environment.project, "ProjectContext"),
|
||||
Name.special("<test>"), JsPlatformAnalyzerServices.builtIns, JsPlatforms.defaultJsPlatform
|
||||
|
||||
+2
-1
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||
import org.jetbrains.kotlin.js.config.JsConfig
|
||||
import org.jetbrains.kotlin.js.resolve.JsPlatformAnalyzerServices
|
||||
import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.TEST_PACKAGE_FQNAME
|
||||
import org.jetbrains.kotlin.resolve.CompilerEnvironment
|
||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationConfiguration
|
||||
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil.readModuleAsProto
|
||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
||||
@@ -75,7 +76,7 @@ class KotlinJavascriptSerializerTest : TestCaseWithTmpdir() {
|
||||
try {
|
||||
val environment = KotlinCoreEnvironment.createForTests(rootDisposable, configuration, EnvironmentConfigFiles.JS_CONFIG_FILES)
|
||||
val files = environment.getSourceFiles()
|
||||
val config = JsConfig(environment.project, environment.configuration)
|
||||
val config = JsConfig(environment.project, environment.configuration, CompilerEnvironment)
|
||||
val analysisResult = TopDownAnalyzerFacadeForJS.analyzeFiles(files, config)
|
||||
val description = JsModuleDescriptor(
|
||||
name = KotlinTestUtils.TEST_MODULE_NAME,
|
||||
|
||||
Reference in New Issue
Block a user