From faa9f4bb14773bae25c8991f67132333318dbd24 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Tue, 16 Sep 2014 14:07:06 +0400 Subject: [PATCH] Reuse both storage manager and exception tracker when delegating to ModuleResolverProvider --- .../jet/plugin/caches/resolve/ModuleDependencyMapper.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/ModuleDependencyMapper.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/ModuleDependencyMapper.kt index c4cd9a3dcd1..b4030793adc 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/ModuleDependencyMapper.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/ModuleDependencyMapper.kt @@ -44,7 +44,7 @@ fun createModuleResolverProvider( val allModuleInfos = collectAllModuleInfosFromIdeaModel(project).toHashSet() - val globalContext = GlobalContext() + val globalContext = (delegateProvider as? ModuleResolverProviderImpl)?.globalContext ?: GlobalContext() fun createResolverForProject(): ResolverForProject { val syntheticFilesByModule = syntheticFiles.groupBy { it.getModuleInfo() } @@ -76,7 +76,7 @@ fun createModuleResolverProvider( return ModuleResolverProviderImpl( resolverForProject, moduleToBodiesResolveSession, - globalContext.exceptionTracker, + globalContext, delegateProvider ) } @@ -127,9 +127,11 @@ object EmptyModuleResolverProvider: ModuleResolverProvider { class ModuleResolverProviderImpl( override val resolverForProject: ResolverForProject, private val bodiesResolveByModule: Map, - override val exceptionTracker: ExceptionTracker, + val globalContext: GlobalContext, val delegateProvider: ModuleResolverProvider = EmptyModuleResolverProvider ): ModuleResolverProvider { + override val exceptionTracker: ExceptionTracker = globalContext.exceptionTracker + override fun resolveSessionForBodiesByModule(module: IdeaModuleInfo): ResolveSessionForBodies = bodiesResolveByModule[module] ?: delegateProvider.resolveSessionForBodiesByModule(module)