From 2fd7e466cf0562edaef6df32f7eeee9b576ca2b0 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 30 Aug 2011 19:09:06 +0200 Subject: [PATCH] inline superclass: perform breaking hierarchy operations after push down refactoring is already done --- .../InlineSuperClassRefactoringProcessor.java | 48 ++++++++++--------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/inlineSuperClass/InlineSuperClassRefactoringProcessor.java b/java/java-impl/src/com/intellij/refactoring/inlineSuperClass/InlineSuperClassRefactoringProcessor.java index 0c001672fd1e..3017c9d072b3 100644 --- a/java/java-impl/src/com/intellij/refactoring/inlineSuperClass/InlineSuperClassRefactoringProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/inlineSuperClass/InlineSuperClassRefactoringProcessor.java @@ -207,39 +207,43 @@ public class InlineSuperClassRefactoringProcessor extends FixableUsagesRefactori } protected void performRefactoring(final UsageInfo[] usages) { - new PushDownProcessor(mySuperClass.getProject(), myMemberInfos, mySuperClass, new DocCommentPolicy(myPolicy)){ + new PushDownProcessor(mySuperClass.getProject(), myMemberInfos, mySuperClass, new DocCommentPolicy(myPolicy)) { //push down conflicts are already collected @Override protected boolean showConflicts(MultiMap conflicts, UsageInfo[] usages) { return true; } - }.run(); - RefactoringUtil.sortDepthFirstRightLeftOrder(usages); - for (UsageInfo usageInfo : usages) { - if (!(usageInfo instanceof ReplaceExtendsListUsageInfo)) { + @Override + protected void performRefactoring(UsageInfo[] pushDownUsages) { + super.performRefactoring(pushDownUsages); + RefactoringUtil.sortDepthFirstRightLeftOrder(usages); + for (UsageInfo usageInfo : usages) { + if (!(usageInfo instanceof ReplaceExtendsListUsageInfo)) { + try { + ((FixableUsageInfo)usageInfo).fixUsage(); + } + catch (IncorrectOperationException e) { + LOG.info(e); + } + } + } + replaceInnerTypeUsages(); + + //postpone broken hierarchy + for (UsageInfo usage : usages) { + if (usage instanceof ReplaceExtendsListUsageInfo) { + ((ReplaceExtendsListUsageInfo)usage).fixUsage(); + } + } try { - ((FixableUsageInfo)usageInfo).fixUsage(); + mySuperClass.delete(); } catch (IncorrectOperationException e) { - LOG.info(e); + LOG.error(e); } } - } - replaceInnerTypeUsages(); - - //postpone broken hierarchy - for (UsageInfo usage : usages) { - if (usage instanceof ReplaceExtendsListUsageInfo) { - ((ReplaceExtendsListUsageInfo)usage).fixUsage(); - } - } - try { - mySuperClass.delete(); - } - catch (IncorrectOperationException e) { - LOG.error(e); - } + }.run(); } private void replaceInnerTypeUsages() {