[Injection] Pull languageVersionSettings injection to 'configureModule'

This commit is contained in:
Dmitry Savvinov
2019-03-13 11:05:18 +03:00
parent 89603327c5
commit c97138c0eb
6 changed files with 21 additions and 22 deletions
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.analyzer.common
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.resolve.TargetPlatform
import org.jetbrains.kotlin.analyzer.*
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.LanguageVersionSettings
@@ -160,14 +161,13 @@ object CommonResolverForModuleFactory : ResolverForModuleFactory() {
metadataPartProvider: MetadataPartProvider,
languageVersionSettings: LanguageVersionSettings
): StorageComponentContainer = createContainer("ResolveCommonCode", CommonPlatformCompilerServices) {
configureModule(moduleContext, DefaultBuiltInPlatforms.commonPlatform, CommonPlatformCompilerServices, bindingTrace)
configureModule(moduleContext, DefaultBuiltInPlatforms.commonPlatform, CommonPlatformCompilerServices, bindingTrace, languageVersionSettings)
useInstance(moduleContentScope)
useInstance(LookupTracker.DO_NOTHING)
useInstance(ExpectActualTracker.DoNothing)
useImpl<ResolveSession>()
useImpl<LazyTopDownAnalyzer>()
useInstance(languageVersionSettings)
useImpl<AnnotationResolverImpl>()
useImpl<CompilerDeserializationConfiguration>()
useInstance(metadataPartProvider)
@@ -64,7 +64,7 @@ fun createContainerForLazyResolveWithJava(
configureJavaClassFinder: (StorageComponentContainer.() -> Unit)? = null,
javaClassTracker: JavaClassesTracker? = null
): StorageComponentContainer = createContainer("LazyResolveWithJava", JvmPlatformCompilerServices) {
configureModule(moduleContext, jvmPlatform, JvmPlatformCompilerServices, bindingTrace)
configureModule(moduleContext, jvmPlatform, JvmPlatformCompilerServices, bindingTrace, languageVersionSettings)
useInstance(moduleContentScope)
useInstance(lookupTracker)
@@ -94,8 +94,6 @@ fun createContainerForLazyResolveWithJava(
useInstance(moduleClassResolver)
useInstance(declarationProviderFactory)
useInstance(languageVersionSettings)
useInstance(languageVersionSettings.getFlag(JvmAnalysisFlags.jsr305))
if (useBuiltInsProvider) {
@@ -45,7 +45,8 @@ fun StorageComponentContainer.configureModule(
moduleContext: ModuleContext,
platform: TargetPlatform,
compilerServices: PlatformDependentCompilerServices,
trace: BindingTrace
trace: BindingTrace,
languageVersionSettings: LanguageVersionSettings
) {
useInstance(moduleContext)
useInstance(moduleContext.module)
@@ -53,6 +54,7 @@ fun StorageComponentContainer.configureModule(
useInstance(moduleContext.storageManager)
useInstance(moduleContext.module.builtIns)
useInstance(trace)
useInstance(languageVersionSettings)
useInstance(platform)
useInstance(compilerServices)
@@ -87,12 +89,11 @@ fun createContainerForBodyResolve(
compilerServices: PlatformDependentCompilerServices,
languageVersionSettings: LanguageVersionSettings
): StorageComponentContainer = createContainer("BodyResolve", compilerServices) {
configureModule(moduleContext, platform, compilerServices, bindingTrace)
configureModule(moduleContext, platform, compilerServices, bindingTrace, languageVersionSettings)
useInstance(statementFilter)
useInstance(BodyResolveCache.ThrowException)
useInstance(languageVersionSettings)
useImpl<AnnotationResolverImpl>()
useImpl<BodyResolver>()
@@ -108,12 +109,11 @@ fun createContainerForLazyBodyResolve(
compilerServices: PlatformDependentCompilerServices,
languageVersionSettings: LanguageVersionSettings
): StorageComponentContainer = createContainer("LazyBodyResolve", compilerServices) {
configureModule(moduleContext, platform, compilerServices, bindingTrace)
configureModule(moduleContext, platform, compilerServices, bindingTrace, languageVersionSettings)
useInstance(kotlinCodeAnalyzer)
useInstance(kotlinCodeAnalyzer.fileScopeProvider)
useInstance(bodyResolveCache)
useInstance(languageVersionSettings)
useImpl<AnnotationResolverImpl>()
useImpl<LazyTopDownAnalyzer>()
useImpl<BasicAbsentDescriptorHandler>()
@@ -130,7 +130,7 @@ fun createContainerForLazyLocalClassifierAnalyzer(
localClassDescriptorHolder: LocalClassDescriptorHolder,
compilerServices: PlatformDependentCompilerServices
): StorageComponentContainer = createContainer("LocalClassifierAnalyzer", compilerServices) {
configureModule(moduleContext, platform, compilerServices, bindingTrace)
configureModule(moduleContext, platform, compilerServices, bindingTrace, languageVersionSettings)
useInstance(localClassDescriptorHolder)
useInstance(lookupTracker)
@@ -148,7 +148,6 @@ fun createContainerForLazyLocalClassifierAnalyzer(
useImpl<DeclarationScopeProviderForLocalClassifierAnalyzer>()
useImpl<LocalLazyDeclarationResolver>()
useInstance(languageVersionSettings)
useImpl<SubstitutingScopeProviderImpl>()
useInstance(statementFilter)
}
@@ -162,10 +161,9 @@ fun createContainerForLazyResolve(
targetEnvironment: TargetEnvironment,
languageVersionSettings: LanguageVersionSettings
): StorageComponentContainer = createContainer("LazyResolve", compilerServices) {
configureModule(moduleContext, platform, compilerServices, bindingTrace)
configureModule(moduleContext, platform, compilerServices, bindingTrace, languageVersionSettings)
useInstance(declarationProviderFactory)
useInstance(languageVersionSettings)
useImpl<AnnotationResolverImpl>()
useImpl<CompilerDeserializationConfiguration>()
@@ -21,7 +21,6 @@ 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.configureModule
@@ -35,9 +34,13 @@ import org.jetbrains.kotlin.types.expressions.FakeCallResolver
fun createContainerForTests(project: Project, module: ModuleDescriptor): ContainerForTests {
return ContainerForTests(createContainer("Tests", JvmPlatformCompilerServices) {
configureModule(ModuleContext(module, project),
JvmPlatforms.defaultJvmPlatform, JvmPlatformCompilerServices, BindingTraceContext())
useInstance(LanguageVersionSettingsImpl.DEFAULT)
configureModule(
ModuleContext(module, project),
JvmPlatforms.defaultJvmPlatform,
JvmPlatformCompilerServices,
BindingTraceContext(),
LanguageVersionSettingsImpl.DEFAULT
)
useImpl<SubstitutingScopeProviderImpl>()
useImpl<AnnotationResolverImpl>()
useImpl<ExpressionTypingServices>()
@@ -309,14 +309,14 @@ internal object IDELightClassContexts {
val jvmTarget = IDELanguageSettingsProvider.getTargetPlatform(moduleInfo, project) as? JvmTarget ?: JvmTarget.DEFAULT
configureModule(
ModuleContext(moduleDescriptor, project), JvmPlatforms.jvmPlatformByTargetVersion(jvmTarget),
JvmPlatformCompilerServices, trace
JvmPlatformCompilerServices, trace,
IDELanguageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)
)
useInstance(GlobalSearchScope.EMPTY_SCOPE)
useInstance(LookupTracker.DO_NOTHING)
useInstance(ExpectActualTracker.DoNothing)
useImpl<FileScopeProviderImpl>()
useInstance(IDELanguageSettingsProvider.getLanguageVersionSettings(moduleInfo, project))
useInstance(FileBasedDeclarationProviderFactory(sm, files))
useInstance(CodegenAffectingAnnotations(realWorldModule))
@@ -49,7 +49,8 @@ fun createTopDownAnalyzerForJs(
moduleContext,
JsPlatforms.defaultJsPlatform,
JsPlatformCompilerServices,
bindingTrace
bindingTrace,
languageVersionSettings
)
useInstance(declarationProviderFactory)
@@ -59,7 +60,6 @@ fun createTopDownAnalyzerForJs(
useInstance(lookupTracker)
useInstance(expectActualTracker)
useInstance(languageVersionSettings)
useImpl<ResolveSession>()
useImpl<LazyTopDownAnalyzer>()
useImpl<SubstitutingScopeProviderImpl>()