diff --git a/platform/lang-api/src/com/intellij/psi/util/PsiFilter.java b/platform/lang-api/src/com/intellij/psi/util/PsiFilter.java index 0d0bd3f9d379..3a8d5034f50d 100644 --- a/platform/lang-api/src/com/intellij/psi/util/PsiFilter.java +++ b/platform/lang-api/src/com/intellij/psi/util/PsiFilter.java @@ -37,4 +37,8 @@ public class PsiFilter { public final Class getParentClass() { return filter; } + + public boolean areEquivalent(T e1, T e2) { + return e1.isEquivalentTo(e2); + } } diff --git a/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java b/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java index 58a53577d841..016c27062dbb 100644 --- a/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java +++ b/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java @@ -65,7 +65,7 @@ public class PsiChangeTracker { if (file == null) { oldFile.accept(new MyVisitor(filter, oldElements)); - calculateStatuses(elements, oldElements, result); + calculateStatuses(elements, oldElements, result, filter); return result; } @@ -89,18 +89,18 @@ public class PsiChangeTracker { if (oldFile == null) return result; oldFile.accept(new MyVisitor(filter, oldElements)); - calculateStatuses(elements, oldElements, result); + calculateStatuses(elements, oldElements, result, filter); return result; } private static Map calculateStatuses(List elements, List oldElements, - Map result) { + Map result, PsiFilter filter) { for (T element : elements) { T e = null; for (T oldElement : oldElements) { - if (element.isEquivalentTo(oldElement)) { + if (filter.areEquivalent(element, oldElement)) { e = oldElement; break; }