diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleResolutionFacadeImpl.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleResolutionFacadeImpl.kt index 1d2972e3064..7b919e6a9d3 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleResolutionFacadeImpl.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleResolutionFacadeImpl.kt @@ -38,7 +38,7 @@ import org.jetbrains.kotlin.resolve.lazy.ResolveSession internal class ModuleResolutionFacadeImpl( private val projectFacade: ProjectResolutionFacade, private val moduleInfo: IdeaModuleInfo -) : ResolutionFacade { +) : ResolutionFacade, ResolutionFacadeModuleDescriptorProvider { override val project: Project get() = projectFacade.project @@ -47,7 +47,7 @@ internal class ModuleResolutionFacadeImpl( override val moduleDescriptor: ModuleDescriptor get() = findModuleDescriptor(moduleInfo) - fun findModuleDescriptor(ideaModuleInfo: IdeaModuleInfo) = projectFacade.findModuleDescriptor(ideaModuleInfo) + override fun findModuleDescriptor(ideaModuleInfo: IdeaModuleInfo) = projectFacade.findModuleDescriptor(ideaModuleInfo) override fun analyze(element: KtElement, bodyResolveMode: BodyResolveMode): BindingContext { return analyze(listOf(element), bodyResolveMode) @@ -96,6 +96,11 @@ internal class ModuleResolutionFacadeImpl( } } -fun ResolutionFacade.findModuleDescriptor(ideaModuleInfo: IdeaModuleInfo): ModuleDescriptor? { - return (this as? ModuleResolutionFacadeImpl)?.findModuleDescriptor(ideaModuleInfo) +fun ResolutionFacade.findModuleDescriptor(ideaModuleInfo: IdeaModuleInfo): ModuleDescriptor { + return (this as ResolutionFacadeModuleDescriptorProvider).findModuleDescriptor(ideaModuleInfo) } + + +interface ResolutionFacadeModuleDescriptorProvider { + fun findModuleDescriptor(ideaModuleInfo: IdeaModuleInfo): ModuleDescriptor +} \ No newline at end of file diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionFacadeWithDebugInfo.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionFacadeWithDebugInfo.kt index fd0690af533..31fa9a0f817 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionFacadeWithDebugInfo.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionFacadeWithDebugInfo.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor +import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.psi.KtDeclaration @@ -29,7 +30,11 @@ import org.jetbrains.kotlin.utils.KotlinExceptionWithAttachments private class ResolutionFacadeWithDebugInfo( private val delegate: ResolutionFacade, private val creationPlace: CreationPlace -) : ResolutionFacade { +) : ResolutionFacade, ResolutionFacadeModuleDescriptorProvider { + override fun findModuleDescriptor(ideaModuleInfo: IdeaModuleInfo): ModuleDescriptor { + return delegate.findModuleDescriptor(ideaModuleInfo) + } + override val project: Project get() = delegate.project