Refactoring: collect callbacks for collecting module info in one place

This commit is contained in:
Nikolay Krasko
2018-03-16 12:41:26 +03:00
parent 0b0eb210b6
commit 982b768c69
5 changed files with 39 additions and 40 deletions
@@ -85,17 +85,17 @@ class ResolverForProjectImpl<M : ModuleInfo>(
private val debugName: String,
private val projectContext: ProjectContext,
modules: Collection<M>,
private val resolverForModuleFactoryByPlatform: (TargetPlatform?) -> ResolverForModuleFactory,
private val modulesContent: (M) -> ModuleContent<M>,
private val modulePlatforms: (M) -> MultiTargetPlatform?,
private val moduleLanguageSettingsProvider: LanguageSettingsProvider,
private val resolverForModuleFactoryByPlatform: (TargetPlatform?) -> ResolverForModuleFactory,
private val platformParameters: PlatformAnalysisParameters,
private val targetEnvironment: TargetEnvironment = CompilerEnvironment,
override val builtIns: KotlinBuiltIns = DefaultBuiltIns.Instance,
private val delegateResolver: ResolverForProject<M> = EmptyResolverForProject(),
private val packagePartProviderFactory: (ModuleContent<M>) -> PackagePartProvider = { _ -> PackagePartProvider.Empty },
private val firstDependency: M? = null,
private val modulePlatforms: (M) -> MultiTargetPlatform?,
private val packageOracleFactory: PackageOracleFactory = PackageOracleFactory.OptimisticFactory,
private val languageSettingsProvider: LanguageSettingsProvider = LanguageSettingsProvider.Default,
private val invalidateOnOOCB: Boolean = true
) : ResolverForProject<M>() {
@@ -174,8 +174,8 @@ class ResolverForProjectImpl<M : ModuleInfo>(
val packagePartProvider = packagePartProviderFactory(moduleContent)
val resolverForModuleFactory = resolverForModuleFactoryByPlatform(module.platform)
val languageVersionSettings = languageSettingsProvider.getLanguageVersionSettings(module, projectContext.project)
val targetPlatformVersion = languageSettingsProvider.getTargetPlatform(module)
val languageVersionSettings = moduleLanguageSettingsProvider.getLanguageVersionSettings(module, projectContext.project)
val targetPlatformVersion = moduleLanguageSettingsProvider.getTargetPlatform(module)
resolverForModuleFactory.createResolverForModule(
descriptor as ModuleDescriptorImpl,
@@ -80,15 +80,15 @@ object CommonAnalyzerFacade : ResolverForModuleFactory() {
"sources for metadata serializer",
ProjectContext(project),
listOf(moduleInfo),
resolverForModuleFactoryByPlatform = { CommonAnalyzerFacade },
modulesContent = { ModuleContent(it, files, GlobalSearchScope.allScope(project)) },
platformParameters = object : PlatformAnalysisParameters {},
languageSettingsProvider = object : LanguageSettingsProvider {
modulePlatforms = { MultiTargetPlatform.Common },
moduleLanguageSettingsProvider = object : LanguageSettingsProvider {
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project) = multiplatformLanguageSettings
override fun getTargetPlatform(moduleInfo: ModuleInfo) = TargetPlatformVersion.NoVersion
},
packagePartProviderFactory = packagePartProviderFactory,
modulePlatforms = { MultiTargetPlatform.Common }
resolverForModuleFactoryByPlatform = { CommonAnalyzerFacade },
platformParameters = object : PlatformAnalysisParameters {},
packagePartProviderFactory = packagePartProviderFactory
)
val moduleDescriptor = resolver.descriptorForModule(moduleInfo)