From 4daa561ae654320a9f645b0507a4bbbeff4996af Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Wed, 2 May 2018 11:39:02 +0300 Subject: [PATCH] push down: don't push methods overriding non-abstract supers (IDEA-191189) --- .../memberPushDown/JavaPushDownDelegate.java | 11 +++++++++-- .../pushDown/MethodsInheritedFromSuper.java | 11 +++++++++++ .../pushDown/MethodsInheritedFromSuper_after.java | 10 ++++++++++ .../com/intellij/java/refactoring/PushDownTest.java | 4 ++-- 4 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 java/java-tests/testData/refactoring/pushDown/MethodsInheritedFromSuper.java create mode 100644 java/java-tests/testData/refactoring/pushDown/MethodsInheritedFromSuper_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 21e35df40e60..626a2ce48088 100644 --- a/java/java-impl/src/com/intellij/refactoring/memberPushDown/JavaPushDownDelegate.java +++ b/java/java-impl/src/com/intellij/refactoring/memberPushDown/JavaPushDownDelegate.java @@ -237,8 +237,15 @@ public class JavaPushDownDelegate extends PushDownDelegatem(); +} + +abstract class B extends A { + public void m() { + //do something + } +} + +class C extends B implements A {} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/pushDown/MethodsInheritedFromSuper_after.java b/java/java-tests/testData/refactoring/pushDown/MethodsInheritedFromSuper_after.java new file mode 100644 index 000000000000..b33697e1fcf9 --- /dev/null +++ b/java/java-tests/testData/refactoring/pushDown/MethodsInheritedFromSuper_after.java @@ -0,0 +1,10 @@ +interface A { +} + +abstract class B extends A { + public void m() { + //do something + } +} + +class C extends B implements A {} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/PushDownTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/PushDownTest.java index 7f62ec94e10d..842fb0c0476e 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/PushDownTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/PushDownTest.java @@ -75,12 +75,12 @@ public class PushDownTest extends LightRefactoringTestCase { public void testDefaultMethodToInterface() {doTest();} public void testDefaultMethodToInterfaceKeepAbstract() {doTestImplements(true);} - public void testThisSuperExpressions() {doTest();} public void testDefaultMethodToClass() {doTest();} public void testDefaultMethodToClassKeepAbstract() { doTestImplements(true); } - public void testInterfaceStaticMethodToInterface() { doTest(); } public void testInterfaceStaticMethodToClass() { doTest(); } + public void testThisSuperExpressions() {doTest();} + public void testMethodsInheritedFromSuper() {doTest();} public void testInterfaceMethodToClass() { doTest();}