From 108c7330154d53d18edcdfb805efc8dcb53b0eac Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Sat, 9 Jan 2016 12:56:29 +0100 Subject: [PATCH] safe delete: check hierarchy excluding current method (IDEA-150176) --- .../refactoring/safeDelete/JavaSafeDeleteProcessor.java | 2 +- .../safeDelete/TypeParameterNoMethodHierarchy.java | 3 +++ .../safeDelete/TypeParameterNoMethodHierarchy_after.java | 3 +++ .../testSrc/com/intellij/refactoring/SafeDeleteTest.java | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/refactoring/safeDelete/TypeParameterNoMethodHierarchy.java create mode 100644 java/java-tests/testData/refactoring/safeDelete/TypeParameterNoMethodHierarchy_after.java diff --git a/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java b/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java index 5becbc3622d0..a3fd53d37421 100644 --- a/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java @@ -172,7 +172,7 @@ public class JavaSafeDeleteProcessor extends SafeDeleteProcessorDelegateBase { return true; } }); - if (!overriders.isEmpty()) { + if (overriders.size() > 1) { String message = RefactoringBundle.message("0.is.a.part.of.method.hierarchy.do.you.want.to.delete.multiple.type.parameters", UsageViewUtil.getLongName(owner)); int result = ApplicationManager.getApplication().isUnitTestMode() ? Messages.YES :Messages.showYesNoCancelDialog(project, message, SafeDeleteHandler.REFACTORING_NAME, Messages.getQuestionIcon()); diff --git a/java/java-tests/testData/refactoring/safeDelete/TypeParameterNoMethodHierarchy.java b/java/java-tests/testData/refactoring/safeDelete/TypeParameterNoMethodHierarchy.java new file mode 100644 index 000000000000..3f578b3425a2 --- /dev/null +++ b/java/java-tests/testData/refactoring/safeDelete/TypeParameterNoMethodHierarchy.java @@ -0,0 +1,3 @@ +class A { + public <T> void foo() {} +} diff --git a/java/java-tests/testData/refactoring/safeDelete/TypeParameterNoMethodHierarchy_after.java b/java/java-tests/testData/refactoring/safeDelete/TypeParameterNoMethodHierarchy_after.java new file mode 100644 index 000000000000..0604b2502c29 --- /dev/null +++ b/java/java-tests/testData/refactoring/safeDelete/TypeParameterNoMethodHierarchy_after.java @@ -0,0 +1,3 @@ +class A { + public void foo() {} +} diff --git a/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java b/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java index 280b8fd2b8ae..719a074891ef 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java @@ -280,6 +280,10 @@ public class SafeDeleteTest extends MultiFileTestCase { public void testTypeParameterWithinMethodHierarchy() throws Exception { doSingleFileTest(); } + + public void testTypeParameterNoMethodHierarchy() throws Exception { + doSingleFileTest(); + } public void testClassWithInnerStaticImport() throws Exception { doTest("ClassWithInnerStaticImport");