From 07fb0d8b67eb4a1989348b2e40796825267f2f44 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 21 Feb 2011 17:04:37 +0100 Subject: [PATCH] EA-25606 diagnostics for invalid PSI in dom highlighting --- .../highlighting/DomElementProblemDescriptorImpl.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/xml/dom-impl/src/com/intellij/util/xml/highlighting/DomElementProblemDescriptorImpl.java b/xml/dom-impl/src/com/intellij/util/xml/highlighting/DomElementProblemDescriptorImpl.java index 7e6fd84aeefe..479ccd79ef66 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/highlighting/DomElementProblemDescriptorImpl.java +++ b/xml/dom-impl/src/com/intellij/util/xml/highlighting/DomElementProblemDescriptorImpl.java @@ -26,10 +26,7 @@ import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElement; -import com.intellij.psi.xml.XmlAttributeValue; -import com.intellij.psi.xml.XmlElement; -import com.intellij.psi.xml.XmlTag; -import com.intellij.psi.xml.XmlText; +import com.intellij.psi.xml.*; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.xml.DomElement; import com.intellij.util.xml.GenericAttributeValue; @@ -88,6 +85,7 @@ public class DomElementProblemDescriptorImpl implements DomElementProblemDescrip if (textRange != null) { final PsiElement psiElement = getPsiElement(); LOG.assertTrue(psiElement != null, "Problems with explicit text range can't be created for DOM elements without underlying XML element"); + assert psiElement.isValid(); myPair = new Pair(textRange, psiElement); } myHighlightType = highlightType; @@ -124,10 +122,12 @@ public class DomElementProblemDescriptorImpl implements DomElementProblemDescrip public void highlightWholeElement() { final PsiElement psiElement = getPsiElement(); if (psiElement instanceof XmlAttributeValue) { + assert psiElement.isValid() : psiElement; final PsiElement attr = psiElement.getParent(); myPair = Pair.create(new TextRange(0, attr.getTextLength()), attr); } else if (psiElement != null) { + assert psiElement.isValid() : psiElement; final XmlTag tag = (XmlTag)(psiElement instanceof XmlTag ? psiElement : psiElement.getParent()); myPair = new Pair(new TextRange(0, tag.getTextLength()), tag); } @@ -137,6 +137,7 @@ public class DomElementProblemDescriptorImpl implements DomElementProblemDescrip if (myPair == null) { myPair = computeProblemRange(); } + assert myPair.second.isValid(); return myPair; } @@ -145,6 +146,7 @@ public class DomElementProblemDescriptorImpl implements DomElementProblemDescrip final PsiElement element = getPsiElement(); if (element != null) { + assert element.isValid() : element; if (element instanceof XmlTag) { return createTagNameRange((XmlTag)element); }