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 85b306f61a0..fd0690af533 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,7 +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.getModuleInfo +import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtElement @@ -182,21 +182,29 @@ private fun StringBuilder.appendElement(element: PsiElement) { if (element is PsiFile) { info("containingFile.name", element.containingFile.name) } - val moduleInfo = ifIndexReady { element.getModuleInfo() } - info("moduleInfo", moduleInfo?.toString() ?: "") + val moduleInfoResult = ifIndexReady { element.getNullableModuleInfo() } + info("moduleInfo", moduleInfoResult?.let { it.result?.toString() ?: "null" } ?: "") + + val moduleInfo = moduleInfoResult?.result if (moduleInfo != null) { info("moduleInfo.platform", moduleInfo.platform?.toString()) } + val virtualFile = element.containingFile?.virtualFile + info("virtualFile", virtualFile?.name) + if (virtualFile != null) { + val moduleName = ifIndexReady { ModuleUtil.findModuleForFile(virtualFile, element.project)?.name ?: "null" }?.result info( "ideaModule", - ifIndexReady { ModuleUtil.findModuleForFile(virtualFile, element.project)?.name ?: "null" } ?: "") + moduleName ?: "") } } -private fun ifIndexReady(body: () -> T): T? = try { - body() +private class IndexResult(val result: T) + +private fun ifIndexReady(body: () -> T): IndexResult? = try { + IndexResult(body()) } catch (e: IndexNotReadyException) { null }