mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
safe delete: process sibling methods (IDEA-111337)
This commit is contained in:
@@ -31,6 +31,7 @@ import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.VariableKind;
|
||||
import com.intellij.psi.impl.FindSuperElementsHelper;
|
||||
import com.intellij.psi.javadoc.PsiDocTag;
|
||||
import com.intellij.psi.search.LocalSearchScope;
|
||||
import com.intellij.psi.search.searches.FunctionalExpressionSearch;
|
||||
@@ -149,6 +150,7 @@ public class JavaSafeDeleteProcessor extends SafeDeleteProcessorDelegateBase {
|
||||
if (superMethods.isEmpty()) {
|
||||
superMethods.add(method);
|
||||
}
|
||||
ContainerUtil.addAllNotNull(superMethods, FindSuperElementsHelper.getSiblingInheritedViaSubClass(method));
|
||||
for (PsiMethod superMethod : superMethods) {
|
||||
parametersToDelete.add(superMethod.getParameterList().getParameters()[parameterIndex]);
|
||||
OverridingMethodsSearch.search(superMethod).forEach(overrider -> {
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
interface Z {
|
||||
void foo(int a);
|
||||
}
|
||||
|
||||
class A {
|
||||
public void foo(int <caret>a) {
|
||||
}
|
||||
}
|
||||
|
||||
class B extends A implements Z {
|
||||
@Override
|
||||
public void foo(int a) {
|
||||
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
|
||||
interface Z {
|
||||
void foo();
|
||||
}
|
||||
|
||||
class A {
|
||||
public void foo() {
|
||||
}
|
||||
}
|
||||
|
||||
class B extends A implements Z {
|
||||
@Override
|
||||
public void foo() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -98,6 +98,10 @@ public class SafeDeleteTest extends MultiFileTestCase {
|
||||
doSingleFileTest();
|
||||
}
|
||||
|
||||
public void testDeleteParameterOfASiblingMethod() throws Exception {
|
||||
doSingleFileTest();
|
||||
}
|
||||
|
||||
public void testDeleteMethodCascade() throws Exception {
|
||||
doSingleFileTest();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user