From c97138c0ebf380131f1f8444ebe723fd61f8cd08 Mon Sep 17 00:00:00 2001 From: Dmitry Savvinov Date: Wed, 13 Mar 2019 11:05:18 +0300 Subject: [PATCH] [Injection] Pull languageVersionSettings injection to 'configureModule' --- .../common/CommonResolverForModuleFactory.kt | 4 ++-- .../kotlin/frontend/java/di/injection.kt | 4 +--- .../jetbrains/kotlin/frontend/di/injection.kt | 16 +++++++--------- .../org/jetbrains/kotlin/tests/di/injection.kt | 11 +++++++---- .../caches/lightClasses/IDELightClassContexts.kt | 4 ++-- .../jetbrains/kotlin/frontend/js/di/injection.kt | 4 ++-- 6 files changed, 21 insertions(+), 22 deletions(-) diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/analyzer/common/CommonResolverForModuleFactory.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/analyzer/common/CommonResolverForModuleFactory.kt index 726411137f0..11cb4fa25cb 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/analyzer/common/CommonResolverForModuleFactory.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/analyzer/common/CommonResolverForModuleFactory.kt @@ -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() useImpl() - useInstance(languageVersionSettings) useImpl() useImpl() useInstance(metadataPartProvider) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt index aa4f1306dc8..f8c337bd055 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt @@ -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) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt b/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt index e0184ab26c8..1a29aaf1f1b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt @@ -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() useImpl() @@ -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() useImpl() useImpl() @@ -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() useImpl() - useInstance(languageVersionSettings) useImpl() 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() useImpl() diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/tests/di/injection.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/tests/di/injection.kt index bb631aa84aa..fdc075238c6 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/tests/di/injection.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/tests/di/injection.kt @@ -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() useImpl() useImpl() diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/IDELightClassContexts.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/IDELightClassContexts.kt index cf2817c63f6..aabcbc4e2d0 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/IDELightClassContexts.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/IDELightClassContexts.kt @@ -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() - useInstance(IDELanguageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)) useInstance(FileBasedDeclarationProviderFactory(sm, files)) useInstance(CodegenAffectingAnnotations(realWorldModule)) diff --git a/js/js.frontend/src/org/jetbrains/kotlin/frontend/js/di/injection.kt b/js/js.frontend/src/org/jetbrains/kotlin/frontend/js/di/injection.kt index 22015ddf8b2..e9bf3a0d903 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/frontend/js/di/injection.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/frontend/js/di/injection.kt @@ -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() useImpl() useImpl()