mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EA-39110 - SOE: PsiInvalidElementAccessException.reason
This commit is contained in:
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.intellij.psi;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -56,12 +55,13 @@ public class PsiInvalidElementAccessException extends RuntimeException {
|
||||
@NonNls
|
||||
@NotNull
|
||||
private static String reason(@NotNull PsiElement root){
|
||||
ASTNode element;
|
||||
for (element = root.getNode(); element != null && element.getTreeParent() != null; element = element.getTreeParent()) {
|
||||
PsiElement element = root instanceof PsiFile ? root : root.getParent();
|
||||
if (element == null) return "parent is null";
|
||||
while (element != null && !(element instanceof PsiFile) && element.getParent() != null) {
|
||||
element = element.getParent();
|
||||
}
|
||||
PsiElement psiElement = element == null ? null : element.getPsi();
|
||||
PsiFile file = psiElement instanceof PsiFile ? (PsiFile)psiElement : null;
|
||||
if (file == null) return root.getParent() == null ? "parent is null" : "containing file is null";
|
||||
PsiFile file = element instanceof PsiFile ? (PsiFile)element : null;
|
||||
if (file == null) return "containing file is null";
|
||||
FileViewProvider provider = file.getViewProvider();
|
||||
VirtualFile vFile = provider.getVirtualFile();
|
||||
if (!vFile.isValid()) return vFile+" is invalid";
|
||||
|
||||
Reference in New Issue
Block a user