diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiClassImplUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiClassImplUtil.java index f194ed0af840..2302a65c12bd 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiClassImplUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiClassImplUtil.java @@ -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);