Refactoring: get module language settings in ResolverForProjectImpl

This commit is contained in:
Nikolay Krasko
2018-03-16 13:27:21 +03:00
parent 525d90540a
commit 0b0eb210b6
4 changed files with 19 additions and 10 deletions
@@ -18,6 +18,8 @@ package org.jetbrains.kotlin.resolve.jvm
import org.jetbrains.kotlin.analyzer.* import org.jetbrains.kotlin.analyzer.*
import org.jetbrains.kotlin.config.JvmTarget import org.jetbrains.kotlin.config.JvmTarget
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.TargetPlatformVersion
import org.jetbrains.kotlin.container.get import org.jetbrains.kotlin.container.get
import org.jetbrains.kotlin.context.ModuleContext import org.jetbrains.kotlin.context.ModuleContext
import org.jetbrains.kotlin.descriptors.PackagePartProvider import org.jetbrains.kotlin.descriptors.PackagePartProvider
@@ -49,7 +51,8 @@ object JvmAnalyzerFacade : ResolverForModuleFactory() {
platformParameters: PlatformAnalysisParameters, platformParameters: PlatformAnalysisParameters,
targetEnvironment: TargetEnvironment, targetEnvironment: TargetEnvironment,
resolverForProject: ResolverForProject<M>, resolverForProject: ResolverForProject<M>,
languageSettingsProvider: LanguageSettingsProvider, languageVersionSettings: LanguageVersionSettings,
targetPlatformVersion: TargetPlatformVersion,
packagePartProvider: PackagePartProvider packagePartProvider: PackagePartProvider
): ResolverForModule { ): ResolverForModule {
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
@@ -79,9 +82,7 @@ object JvmAnalyzerFacade : ResolverForModuleFactory() {
resolverForModule.componentProvider.get<JavaDescriptorResolver>() resolverForModule.componentProvider.get<JavaDescriptorResolver>()
} }
val jvmTarget = languageSettingsProvider.getTargetPlatform(moduleInfo) as? JvmTarget ?: JvmTarget.JVM_1_6 val jvmTarget = targetPlatformVersion as? JvmTarget ?: JvmTarget.JVM_1_6
val languageVersionSettings = languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)
val trace = CodeAnalyzerInitializer.getInstance(project).createTrace() val trace = CodeAnalyzerInitializer.getInstance(project).createTrace()
val lookupTracker = LookupTracker.DO_NOTHING val lookupTracker = LookupTracker.DO_NOTHING
@@ -174,6 +174,9 @@ class ResolverForProjectImpl<M : ModuleInfo>(
val packagePartProvider = packagePartProviderFactory(moduleContent) val packagePartProvider = packagePartProviderFactory(moduleContent)
val resolverForModuleFactory = resolverForModuleFactoryByPlatform(module.platform) val resolverForModuleFactory = resolverForModuleFactoryByPlatform(module.platform)
val languageVersionSettings = languageSettingsProvider.getLanguageVersionSettings(module, projectContext.project)
val targetPlatformVersion = languageSettingsProvider.getTargetPlatform(module)
resolverForModuleFactory.createResolverForModule( resolverForModuleFactory.createResolverForModule(
descriptor as ModuleDescriptorImpl, descriptor as ModuleDescriptorImpl,
projectContext.withModule(descriptor), projectContext.withModule(descriptor),
@@ -181,7 +184,8 @@ class ResolverForProjectImpl<M : ModuleInfo>(
platformParameters, platformParameters,
targetEnvironment, targetEnvironment,
this@ResolverForProjectImpl, this@ResolverForProjectImpl,
languageSettingsProvider, languageVersionSettings,
targetPlatformVersion,
packagePartProvider packagePartProvider
) )
} }
@@ -298,7 +302,8 @@ abstract class ResolverForModuleFactory {
platformParameters: PlatformAnalysisParameters, platformParameters: PlatformAnalysisParameters,
targetEnvironment: TargetEnvironment, targetEnvironment: TargetEnvironment,
resolverForProject: ResolverForProject<M>, resolverForProject: ResolverForProject<M>,
languageSettingsProvider: LanguageSettingsProvider, languageVersionSettings: LanguageVersionSettings,
targetPlatformVersion: TargetPlatformVersion,
packagePartProvider: PackagePartProvider packagePartProvider: PackagePartProvider
): ResolverForModule ): ResolverForModule
@@ -106,7 +106,8 @@ object CommonAnalyzerFacade : ResolverForModuleFactory() {
platformParameters: PlatformAnalysisParameters, platformParameters: PlatformAnalysisParameters,
targetEnvironment: TargetEnvironment, targetEnvironment: TargetEnvironment,
resolverForProject: ResolverForProject<M>, resolverForProject: ResolverForProject<M>,
languageSettingsProvider: LanguageSettingsProvider, languageVersionSettings: LanguageVersionSettings,
targetPlatformVersion: TargetPlatformVersion,
packagePartProvider: PackagePartProvider packagePartProvider: PackagePartProvider
): ResolverForModule { ): ResolverForModule {
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
@@ -120,7 +121,7 @@ object CommonAnalyzerFacade : ResolverForModuleFactory() {
val trace = CodeAnalyzerInitializer.getInstance(project).createTrace() val trace = CodeAnalyzerInitializer.getInstance(project).createTrace()
val container = createContainerToResolveCommonCode( val container = createContainerToResolveCommonCode(
moduleContext, trace, declarationProviderFactory, moduleContentScope, targetEnvironment, packagePartProvider, moduleContext, trace, declarationProviderFactory, moduleContentScope, targetEnvironment, packagePartProvider,
languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project) languageVersionSettings
) )
val packageFragmentProviders = listOf( val packageFragmentProviders = listOf(
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.caches.resolve
import org.jetbrains.kotlin.analyzer.* import org.jetbrains.kotlin.analyzer.*
import org.jetbrains.kotlin.caches.project.LibraryModuleInfo import org.jetbrains.kotlin.caches.project.LibraryModuleInfo
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.TargetPlatformVersion import org.jetbrains.kotlin.config.TargetPlatformVersion
import org.jetbrains.kotlin.container.get import org.jetbrains.kotlin.container.get
import org.jetbrains.kotlin.context.ModuleContext import org.jetbrains.kotlin.context.ModuleContext
@@ -45,7 +46,8 @@ object JsAnalyzerFacade : ResolverForModuleFactory() {
platformParameters: PlatformAnalysisParameters, platformParameters: PlatformAnalysisParameters,
targetEnvironment: TargetEnvironment, targetEnvironment: TargetEnvironment,
resolverForProject: ResolverForProject<M>, resolverForProject: ResolverForProject<M>,
languageSettingsProvider: LanguageSettingsProvider, languageVersionSettings: LanguageVersionSettings,
targetPlatformVersion: TargetPlatformVersion,
packagePartProvider: PackagePartProvider packagePartProvider: PackagePartProvider
): ResolverForModule { ): ResolverForModule {
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
@@ -65,7 +67,7 @@ object JsAnalyzerFacade : ResolverForModuleFactory() {
JsPlatform, JsPlatform,
TargetPlatformVersion.NoVersion, TargetPlatformVersion.NoVersion,
targetEnvironment, targetEnvironment,
languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project) languageVersionSettings
) )
var packageFragmentProvider = container.get<ResolveSession>().packageFragmentProvider var packageFragmentProvider = container.get<ResolveSession>().packageFragmentProvider