From c9f72daaff0e26bdfc7e740322b5e7edc756a1bb Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Wed, 4 May 2016 20:10:50 +0200 Subject: [PATCH] push down: preserve @Override if keep abstract was selected (IDEA-155600) --- .../memberPushDown/JavaPushDownDelegate.java | 25 ++++++++----------- ...eserveOverrideAnnotationAfterConflict.java | 18 +++++++++++++ ...OverrideAnnotationAfterConflict_after.java | 16 ++++++++++++ .../intellij/refactoring/PushDownTest.java | 13 +++++++++- 4 files changed, 56 insertions(+), 16 deletions(-) create mode 100644 java/java-tests/testData/refactoring/pushDown/PreserveOverrideAnnotationAfterConflict.java create mode 100644 java/java-tests/testData/refactoring/pushDown/PreserveOverrideAnnotationAfterConflict_after.java diff --git a/java/java-impl/src/com/intellij/refactoring/memberPushDown/JavaPushDownDelegate.java b/java/java-impl/src/com/intellij/refactoring/memberPushDown/JavaPushDownDelegate.java index ac29992e1116..f103485b083e 100644 --- a/java/java-impl/src/com/intellij/refactoring/memberPushDown/JavaPushDownDelegate.java +++ b/java/java-impl/src/com/intellij/refactoring/memberPushDown/JavaPushDownDelegate.java @@ -229,28 +229,20 @@ public class JavaPushDownDelegate extends PushDownDelegate conflicts, UsageInfo[] usages) { - if (failure ? conflicts.isEmpty() : !conflicts.isEmpty()) { + if (failure == conflicts.isEmpty()) { fail(failure ? "Conflict was not detected" : "False conflict was detected"); } return true; @@ -150,6 +154,10 @@ public class PushDownTest extends LightRefactoringTestCase { } private void doTestImplements(boolean toAbstract) { + doTestImplements(toAbstract, false); + } + + private void doTestImplements(boolean toAbstract, boolean failure) { configureByFile(BASE_PATH + getTestName(false) + ".java"); PsiClass currentClass = JavaPsiFacade.getInstance(getProject()).findClass("Test", GlobalSearchScope.projectScope(getProject())); @@ -166,6 +174,9 @@ public class PushDownTest extends LightRefactoringTestCase { new DocCommentPolicy(DocCommentPolicy.ASIS)) { @Override protected boolean showConflicts(@NotNull MultiMap conflicts, UsageInfo[] usages) { + if (failure == conflicts.isEmpty()) { + fail(failure ? "Conflict was not detected" : "False conflict was detected"); + } return true; } }.run();