safe delete: don't warn if class is used in import list of file to delete (IDEA-172496)

This commit is contained in:
Anna Kozlova
2017-05-10 19:49:35 +03:00
parent 8914fcc986
commit 9d9d1b73a0
@@ -516,10 +516,22 @@ public class JavaSafeDeleteProcessor extends SafeDeleteProcessorDelegateBase {
final String qualifiedName = psiClass.getQualifiedName();
final boolean annotationType = psiClass.isAnnotationType() && qualifiedName != null;
PsiElement[] topElementsToDelete = Arrays.stream(allElementsToDelete).map(element -> {
if (element instanceof PsiClass) {
PsiElement parent = element.getParent();
if (parent instanceof PsiClassOwner) {
PsiClass[] classes = ((PsiClassOwner)parent).getClasses();
if (classes.length == 1 && classes[0] == element) {
return element.getContainingFile();
}
}
}
return element;
}).toArray(PsiElement[]::new);
ReferencesSearch.search(psiClass).forEach(reference -> {
final PsiElement element = reference.getElement();
if (!isInside(element, allElementsToDelete)) {
if (!isInside(element, topElementsToDelete)) {
PsiElement parent = element.getParent();
if (parent instanceof PsiReferenceList) {
final PsiElement pparent = parent.getParent();