mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
rename: don't change qualifier on rename with collisions
This commit is contained in:
@@ -131,7 +131,7 @@ public class RenameJavaMethodProcessor extends RenameJavaMemberProcessor {
|
||||
private static void fixNameCollisionsWithInnerClassMethod(final PsiElement element, final String newName,
|
||||
final Set<PsiMethod> methodAndOverriders, final Set<PsiClass> containingClasses,
|
||||
final boolean isStatic) throws IncorrectOperationException {
|
||||
if (!(element instanceof PsiReferenceExpression)) return;
|
||||
if (!(element instanceof PsiReferenceExpression) || ((PsiReferenceExpression)element).getQualifierExpression() != null) return;
|
||||
PsiElement elem = ((PsiReferenceExpression)element).resolve();
|
||||
|
||||
if (elem instanceof PsiMethod) {
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
interface A {
|
||||
default void <caret>m() {}
|
||||
default void f() {
|
||||
m();
|
||||
}
|
||||
}
|
||||
|
||||
class Client1 implements A {
|
||||
Client2 a;
|
||||
@Override
|
||||
public void m() {
|
||||
a.m();
|
||||
}
|
||||
}
|
||||
|
||||
class Client2 implements A {
|
||||
@Override
|
||||
public void f() { }
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
interface A {
|
||||
default void f() {}
|
||||
default void f() {
|
||||
f();
|
||||
}
|
||||
}
|
||||
|
||||
class Client1 implements A {
|
||||
Client2 a;
|
||||
@Override
|
||||
public void f() {
|
||||
a.f();
|
||||
}
|
||||
}
|
||||
|
||||
class Client2 implements A {
|
||||
@Override
|
||||
public void f() { }
|
||||
}
|
||||
@@ -162,6 +162,9 @@ public class RenameCollisionsTest extends LightRefactoringTestCase {
|
||||
public void testRenameVarParamToOuterConst() {
|
||||
doTest("STATIC_FIELD");
|
||||
}
|
||||
public void testRenameConflictNoQualification() {
|
||||
BaseRefactoringProcessor.ConflictsInTestsException.withIgnoredConflicts(() -> doTest("f"));
|
||||
}
|
||||
|
||||
public void testRenameLocalVariableHidesFieldInAnonymous() {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user