From 6f47731d8c2e9f21b641ff14b2facea159d4becf Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 3 Nov 2009 19:28:35 +0300 Subject: [PATCH] push down: sort out rebinding references in order to process imports first --- .../refactoring/memberPushDown/PushDownProcessor.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/memberPushDown/PushDownProcessor.java b/java/java-impl/src/com/intellij/refactoring/memberPushDown/PushDownProcessor.java index d365bba88e98..2bae832f3cf9 100644 --- a/java/java-impl/src/com/intellij/refactoring/memberPushDown/PushDownProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/memberPushDown/PushDownProcessor.java @@ -42,9 +42,7 @@ import com.intellij.util.IncorrectOperationException; import com.intellij.util.containers.HashSet; import org.jetbrains.annotations.NotNull; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; +import java.util.*; public class PushDownProcessor extends BaseRefactoringProcessor { private static final Logger LOG = Logger.getInstance("#com.intellij.refactoring.memberPushDown.PushDownProcessor"); @@ -376,6 +374,12 @@ public class PushDownProcessor extends BaseRefactoringProcessor { if (newMember != null) { decodeRefs(newMember, targetClass); + //rebind imports first + Collections.sort(refsToRebind, new Comparator() { + public int compare(PsiReference o1, PsiReference o2) { + return PsiUtil.BY_POSITION.compare(o1.getElement(), o2.getElement()); + } + }); for (PsiReference psiReference : refsToRebind) { JavaCodeStyleManagerImpl.getInstance(myProject).shortenClassReferences(psiReference.bindToElement(newMember)); }