more diagnostics and fail-fast for EA-93279 - assert: SmartPointerManagerImpl.createSmartPsiFileRangePointer

This commit is contained in:
peter
2017-02-22 22:33:37 +01:00
parent a15ff5bec2
commit d9e3ec3208
3 changed files with 4 additions and 3 deletions
@@ -114,9 +114,7 @@ public class SmartPointerManagerImpl extends SmartPointerManager {
public SmartPsiFileRange createSmartPsiFileRangePointer(@NotNull PsiFile file,
@NotNull TextRange range,
boolean forInjected) {
if (!file.isValid()) {
LOG.error("Invalid element:" + file);
}
PsiUtilCore.ensureValid(file);
SmartPointerTracker.processQueue();
SmartPsiFileRangePointerImpl pointer = new SmartPsiFileRangePointerImpl(file, ProperTextRange.create(range), forInjected);
trackPointer(pointer, file.getViewProvider().getVirtualFile());
@@ -115,6 +115,7 @@ public class InjectedLanguageUtil {
public static boolean enumerate(@NotNull PsiElement host, @NotNull PsiLanguageInjectionHost.InjectedPsiVisitor visitor) {
PsiFile containingFile = host.getContainingFile();
PsiUtilCore.ensureValid(containingFile);
return enumerate(host, containingFile, true, visitor);
}
@@ -23,6 +23,7 @@ import com.intellij.ide.util.treeView.smartTree.Sorter;
import com.intellij.lang.dtd.DTDLanguage;
import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.psi.xml.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -64,6 +65,7 @@ public class XmlStructureViewTreeModel extends TextEditorBasedStructureViewModel
public Object getCurrentEditorElement() {
final Object editorElement = super.getCurrentEditorElement();
if (editorElement instanceof XmlTag) {
PsiUtilCore.ensureValid((XmlTag)editorElement);
for (StructureViewExtension extension : StructureViewFactoryEx.getInstanceEx(getPsiFile().getProject()).getAllExtensions(XmlTag.class)) {
final Object element = extension.getCurrentEditorElement(getEditor(), (PsiElement)editorElement);
if (element != null) return element;