Do not inject CompilerConfiguration into compiler front-end

Inject LanguageVersionSettings instead; all information relevant to the
analysis should be now passed via an instance of LanguageVersionSettings
(which should be renamed to a more general name in the future).

This is partially a revert of d499998 and related commits
This commit is contained in:
Alexander Udalov
2017-03-02 16:28:59 +03:00
parent a879cb0cfd
commit cf7048dd0f
19 changed files with 51 additions and 99 deletions
@@ -266,10 +266,6 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
@Suppress("NAME_SHADOWING")
var files = files
val configuration = environment.configuration.copy().apply {
this.languageVersionSettings = languageVersionSettings
}
// New JavaDescriptorResolver is created for each module, which is good because it emulates different Java libraries for each module,
// albeit with same class names
// See TopDownAnalyzerFacadeForJVM#analyzeFilesWithJavaIntegration
@@ -282,7 +278,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
moduleContext.project,
files,
moduleTrace,
configuration,
environment.configuration.copy().apply { this.languageVersionSettings = languageVersionSettings },
{ scope -> JvmPackagePartProvider(environment, scope) }
)
}
@@ -318,7 +314,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
JvmPackagePartProvider(environment, moduleContentScope),
moduleClassResolver,
JvmTarget.JVM_1_6,
configuration
languageVersionSettings
)
container.initJvmBuiltInsForTopDownAnalysis()
moduleClassResolver.resolver = container.get<JavaDescriptorResolver>()
@@ -20,8 +20,8 @@ import com.intellij.openapi.editor.impl.DocumentImpl
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JvmTarget
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.container.ComponentProvider
import org.jetbrains.kotlin.container.get
import org.jetbrains.kotlin.descriptors.ClassDescriptor
@@ -64,7 +64,7 @@ abstract class AbstractDescriptorRendererTest : KotlinTestWithEnvironment() {
JvmPlatform,
JvmTarget.JVM_1_6,
targetEnvironment,
CompilerConfiguration.EMPTY
LanguageVersionSettingsImpl.DEFAULT
)
val resolveSession = container.get<ResolveSession>()
@@ -17,15 +17,14 @@
package org.jetbrains.kotlin.tests.di
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JvmTarget
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.container.StorageComponentContainer
import org.jetbrains.kotlin.container.getValue
import org.jetbrains.kotlin.container.useImpl
import org.jetbrains.kotlin.container.useInstance
import org.jetbrains.kotlin.context.ModuleContext
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.frontend.di.configureCommon
import org.jetbrains.kotlin.frontend.di.configureModule
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.resolve.DescriptorResolver
@@ -40,7 +39,7 @@ fun createContainerForTests(project: Project, module: ModuleDescriptor): Contain
return ContainerForTests(createContainer("Tests", JvmPlatform) {
configureModule(ModuleContext(module, project), JvmPlatform, JvmTarget.JVM_1_6)
useInstance(LookupTracker.DO_NOTHING)
configureCommon(CompilerConfiguration.EMPTY)
useInstance(LanguageVersionSettingsImpl.DEFAULT)
useImpl<ExpressionTypingServices>()
})
}