more diagnostics for EA-121352 - NPE: PsiClassImplUtil.isClassEquivalentTo

This commit is contained in:
peter
2018-06-08 15:19:32 +02:00
parent 78b70d68e2
commit abedcdedb7
@@ -1148,8 +1148,8 @@ public class PsiClassImplUtil {
return true;
}
final PsiFile file1 = aClass.getContainingFile().getOriginalFile();
final PsiFile file2 = another.getContainingFile().getOriginalFile();
final PsiFile file1 = getOriginalFile(aClass);
final PsiFile file2 = getOriginalFile((PsiClass)another);
//see com.intellij.openapi.vcs.changes.PsiChangeTracker
//see com.intellij.psi.impl.PsiFileFactoryImpl#createFileFromText(CharSequence,PsiFile)
@@ -1168,6 +1168,13 @@ public class PsiClassImplUtil {
return (fileIndex.isInSource(vfile1) || lib1) && (fileIndex.isInSource(vfile2) || lib2);
}
@NotNull
private static PsiFile getOriginalFile(@NotNull PsiClass aClass) {
PsiFile file = aClass.getContainingFile();
if (file == null) throw new IllegalStateException("No containing file for " + aClass.getLanguage() + " " + aClass.getClass());
return file.getOriginalFile();
}
private static boolean compareClassSeqNumber(@NotNull PsiClass aClass, @NotNull PsiClass another) {
// there may be several classes in one file, they must not be equal
int index1 = getSeqNumber(aClass);