Refactoring: restrict callback in ResolverForProjectImpl

This commit is contained in:
Nikolay Krasko
2018-03-14 14:07:35 +03:00
parent 666d31bdc4
commit 3e313509e1
4 changed files with 7 additions and 6 deletions
@@ -85,7 +85,7 @@ class ResolverForProjectImpl<M : ModuleInfo>(
private val debugName: String, private val debugName: String,
private val projectContext: ProjectContext, private val projectContext: ProjectContext,
modules: Collection<M>, modules: Collection<M>,
private val resolverForModuleFactory: (M) -> ResolverForModuleFactory, private val resolverForModuleFactoryByPlatform: (TargetPlatform?) -> ResolverForModuleFactory,
private val modulesContent: (M) -> ModuleContent, private val modulesContent: (M) -> ModuleContent,
private val platformParameters: PlatformAnalysisParameters, private val platformParameters: PlatformAnalysisParameters,
private val targetEnvironment: TargetEnvironment = CompilerEnvironment, private val targetEnvironment: TargetEnvironment = CompilerEnvironment,
@@ -170,7 +170,7 @@ class ResolverForProjectImpl<M : ModuleInfo>(
ResolverForModuleComputationTracker.getInstance(projectContext.project)?.onResolverComputed(module) ResolverForModuleComputationTracker.getInstance(projectContext.project)?.onResolverComputed(module)
resolverForModuleFactory(module).createResolverForModule( resolverForModuleFactoryByPlatform(module.platform).createResolverForModule(
module, descriptor as ModuleDescriptorImpl, projectContext.withModule(descriptor), modulesContent(module), module, descriptor as ModuleDescriptorImpl, projectContext.withModule(descriptor), modulesContent(module),
platformParameters, targetEnvironment, this@ResolverForProjectImpl, platformParameters, targetEnvironment, this@ResolverForProjectImpl,
languageSettingsProvider, languageSettingsProvider,
@@ -80,7 +80,7 @@ object CommonAnalyzerFacade : ResolverForModuleFactory() {
"sources for metadata serializer", "sources for metadata serializer",
ProjectContext(project), ProjectContext(project),
listOf(moduleInfo), listOf(moduleInfo),
resolverForModuleFactory = { CommonAnalyzerFacade }, resolverForModuleFactoryByPlatform = { CommonAnalyzerFacade },
modulesContent = { ModuleContent(files, GlobalSearchScope.allScope(project)) }, modulesContent = { ModuleContent(files, GlobalSearchScope.allScope(project)) },
platformParameters = object : PlatformAnalysisParameters {}, platformParameters = object : PlatformAnalysisParameters {},
languageSettingsProvider = object : LanguageSettingsProvider { languageSettingsProvider = object : LanguageSettingsProvider {
@@ -38,7 +38,8 @@ fun createResolveSessionForFiles(
val testModule = TestModule(addBuiltIns) val testModule = TestModule(addBuiltIns)
val resolverForProject = ResolverForProjectImpl( val resolverForProject = ResolverForProjectImpl(
"test", "test",
projectContext, listOf(testModule), { JvmAnalyzerFacade }, projectContext, listOf(testModule),
{ JvmAnalyzerFacade },
{ ModuleContent(syntheticFiles, GlobalSearchScope.allScope(project)) }, { ModuleContent(syntheticFiles, GlobalSearchScope.allScope(project)) },
JvmPlatformParameters { testModule }, JvmPlatformParameters { testModule },
modulePlatforms = { JvmPlatform.multiTargetPlatform } modulePlatforms = { JvmPlatform.multiTargetPlatform }
@@ -123,8 +123,8 @@ internal class ProjectResolutionFacade(
resolverDebugName, resolverDebugName,
globalContext.withProject(project), globalContext.withProject(project),
modulesToCreateResolversFor, modulesToCreateResolversFor,
{ module -> { modulePlatform ->
val platform = module.platform ?: settings.platform val platform = modulePlatform ?: settings.platform
IdePlatformSupport.facades[platform] ?: throw UnsupportedOperationException("Unsupported platform $platform") IdePlatformSupport.facades[platform] ?: throw UnsupportedOperationException("Unsupported platform $platform")
}, },
modulesContentFactory, modulesContentFactory,