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 00993f51fbeb..968a0b95f134 100644 --- a/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java @@ -318,7 +318,7 @@ public class JavaSafeDeleteProcessor extends SafeDeleteProcessorDelegateBase { } } - if (delegatingParams.size() == 1) { + if (!delegatingParams.isEmpty()) { final SafeDeleteParameterCallHierarchyUsageInfo parameterHierarchyUsageInfo = delegatingParams.get(0); if (ApplicationManager.getApplication().isUnitTestMode()) { result.addAll(delegatingParams); diff --git a/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteParameterCallHierarchyUsageInfo.java b/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteParameterCallHierarchyUsageInfo.java index 1c437899b940..c223c08273e6 100644 --- a/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteParameterCallHierarchyUsageInfo.java +++ b/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteParameterCallHierarchyUsageInfo.java @@ -49,4 +49,26 @@ public class SafeDeleteParameterCallHierarchyUsageInfo extends SafeDeleteUsageIn public PsiMethod getCallerMethod() { return myCallerMethod; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + + SafeDeleteParameterCallHierarchyUsageInfo info = (SafeDeleteParameterCallHierarchyUsageInfo)o; + + if (!myCalledMethod.equals(info.myCalledMethod)) return false; + if (!myCallerMethod.equals(info.myCallerMethod)) return false; + + return true; + } + + @Override + public int hashCode() { + int result = super.hashCode(); + result = 31 * result + myCalledMethod.hashCode(); + result = 31 * result + myCallerMethod.hashCode(); + return result; + } } diff --git a/java/java-tests/testData/refactoring/safeDelete/DeepDeleteParameterSimple.java b/java/java-tests/testData/refactoring/safeDelete/DeepDeleteParameterSimple.java index 15cfeb2429fd..1eec72e4a6c1 100644 --- a/java/java-tests/testData/refactoring/safeDelete/DeepDeleteParameterSimple.java +++ b/java/java-tests/testData/refactoring/safeDelete/DeepDeleteParameterSimple.java @@ -4,5 +4,9 @@ class Test { bar(i); } + void baz(int i) { + bar(i); + } + void bar(int i){} } \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/safeDelete/DeepDeleteParameterSimple_after.java b/java/java-tests/testData/refactoring/safeDelete/DeepDeleteParameterSimple_after.java index d3f5fd3b4214..58fb1c24abc3 100644 --- a/java/java-tests/testData/refactoring/safeDelete/DeepDeleteParameterSimple_after.java +++ b/java/java-tests/testData/refactoring/safeDelete/DeepDeleteParameterSimple_after.java @@ -4,5 +4,9 @@ class Test { bar(); } + void baz() { + bar(); + } + void bar(){} } \ No newline at end of file