Debugger: do not throw assert when context for codeFragment is null (ex. when file was changed and psi isn't valid any more)
This commit is contained in:
+3
-3
@@ -199,12 +199,12 @@ public class KotlinCacheService(val project: Project) {
|
|||||||
|
|
||||||
private fun findSyntheticFiles(files: Collection<JetFile>) = files.map {
|
private fun findSyntheticFiles(files: Collection<JetFile>) = files.map {
|
||||||
if (it is JetCodeFragment) it.getContextFile() else it
|
if (it is JetCodeFragment) it.getContextFile() else it
|
||||||
}.filter {
|
}.filterNotNull().filter {
|
||||||
!ProjectRootsUtil.isInProjectSource(it)
|
!ProjectRootsUtil.isInProjectSource(it)
|
||||||
}.toSet()
|
}.toSet()
|
||||||
|
|
||||||
private fun JetCodeFragment.getContextFile(): JetFile {
|
private fun JetCodeFragment.getContextFile(): JetFile? {
|
||||||
val contextElement = getContext() ?: throw AssertionError("Analyzing code fragment of type $javaClass with no context")
|
val contextElement = getContext() ?: return null
|
||||||
val contextFile = (contextElement as? JetElement)?.getContainingJetFile()
|
val contextFile = (contextElement as? JetElement)?.getContainingJetFile()
|
||||||
?: throw AssertionError("Analyzing kotlin code fragment of type $javaClass with java context of type ${contextElement.javaClass}")
|
?: 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
|
return if (contextFile is JetCodeFragment) contextFile.getContextFile() else contextFile
|
||||||
|
|||||||
Reference in New Issue
Block a user