Move: More accurate visibility analysis

#KT-10553 Fixed
This commit is contained in:
Alexey Sedunov
2016-01-20 18:26:53 +03:00
parent 64f6c62d4f
commit 218dd41a08
49 changed files with 442 additions and 112 deletions
@@ -95,7 +95,9 @@ internal class ResolutionFacadeImpl(
//TODO: ideally we would like to store moduleDescriptor once and for all
// but there are some usages that use resolutionFacade and mutate the psi leading to recomputation of underlying structures
override val moduleDescriptor: ModuleDescriptor
get() = projectFacade.findModuleDescriptor(moduleInfo)
get() = findModuleDescriptor(moduleInfo)
fun findModuleDescriptor(ideaModuleInfo: IdeaModuleInfo) = projectFacade.findModuleDescriptor(ideaModuleInfo)
override fun analyze(element: KtElement, bodyResolveMode: BodyResolveMode): BindingContext {
val resolveElementCache = getFrontendService(element, ResolveElementCache::class.java)
@@ -129,3 +131,7 @@ internal class ResolutionFacadeImpl(
}
}
fun ResolutionFacade.findModuleDescriptor(ideaModuleInfo: IdeaModuleInfo): ModuleDescriptor? {
return (this as? ResolutionFacadeImpl)?.findModuleDescriptor(ideaModuleInfo)
}