From 03de31f1b6df7ab3a5e5523aee9e3135536b18fc Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Tue, 14 Jul 2015 12:46:30 +0300 Subject: [PATCH] Debugger: do not throw assert when context for codeFragment is null (ex. when file was changed and psi isn't valid any more) --- .../kotlin/idea/caches/resolve/KotlinCacheService.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheService.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheService.kt index b22b6120619..9d2a61818ba 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheService.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheService.kt @@ -199,12 +199,12 @@ public class KotlinCacheService(val project: Project) { private fun findSyntheticFiles(files: Collection) = files.map { if (it is JetCodeFragment) it.getContextFile() else it - }.filter { + }.filterNotNull().filter { !ProjectRootsUtil.isInProjectSource(it) }.toSet() - private fun JetCodeFragment.getContextFile(): JetFile { - val contextElement = getContext() ?: throw AssertionError("Analyzing code fragment of type $javaClass with no context") + private fun JetCodeFragment.getContextFile(): JetFile? { + val contextElement = getContext() ?: return null val contextFile = (contextElement as? JetElement)?.getContainingJetFile() ?: throw AssertionError("Analyzing kotlin code fragment of type $javaClass with java context of type ${contextElement.javaClass}") return if (contextFile is JetCodeFragment) contextFile.getContextFile() else contextFile