Reuse both storage manager and exception tracker when delegating to ModuleResolverProvider

This commit is contained in:
Pavel V. Talanov
2014-09-16 14:07:06 +04:00
parent c0657320f5
commit faa9f4bb14
@@ -44,7 +44,7 @@ fun createModuleResolverProvider(
val allModuleInfos = collectAllModuleInfosFromIdeaModel(project).toHashSet() val allModuleInfos = collectAllModuleInfosFromIdeaModel(project).toHashSet()
val globalContext = GlobalContext() val globalContext = (delegateProvider as? ModuleResolverProviderImpl)?.globalContext ?: GlobalContext()
fun createResolverForProject(): ResolverForProject<IdeaModuleInfo, ResolverForModule> { fun createResolverForProject(): ResolverForProject<IdeaModuleInfo, ResolverForModule> {
val syntheticFilesByModule = syntheticFiles.groupBy { it.getModuleInfo() } val syntheticFilesByModule = syntheticFiles.groupBy { it.getModuleInfo() }
@@ -76,7 +76,7 @@ fun createModuleResolverProvider(
return ModuleResolverProviderImpl( return ModuleResolverProviderImpl(
resolverForProject, resolverForProject,
moduleToBodiesResolveSession, moduleToBodiesResolveSession,
globalContext.exceptionTracker, globalContext,
delegateProvider delegateProvider
) )
} }
@@ -127,9 +127,11 @@ object EmptyModuleResolverProvider: ModuleResolverProvider {
class ModuleResolverProviderImpl( class ModuleResolverProviderImpl(
override val resolverForProject: ResolverForProject<IdeaModuleInfo, ResolverForModule>, override val resolverForProject: ResolverForProject<IdeaModuleInfo, ResolverForModule>,
private val bodiesResolveByModule: Map<IdeaModuleInfo, ResolveSessionForBodies>, private val bodiesResolveByModule: Map<IdeaModuleInfo, ResolveSessionForBodies>,
override val exceptionTracker: ExceptionTracker, val globalContext: GlobalContext,
val delegateProvider: ModuleResolverProvider = EmptyModuleResolverProvider val delegateProvider: ModuleResolverProvider = EmptyModuleResolverProvider
): ModuleResolverProvider { ): ModuleResolverProvider {
override val exceptionTracker: ExceptionTracker = globalContext.exceptionTracker
override fun resolveSessionForBodiesByModule(module: IdeaModuleInfo): ResolveSessionForBodies = override fun resolveSessionForBodiesByModule(module: IdeaModuleInfo): ResolveSessionForBodies =
bodiesResolveByModule[module] ?: bodiesResolveByModule[module] ?:
delegateProvider.resolveSessionForBodiesByModule(module) delegateProvider.resolveSessionForBodiesByModule(module)