mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
find method duplicates: correct this according to the replacement place ( IDEA-22960 )
This commit is contained in:
@@ -406,6 +406,10 @@ public class DuplicatesFinder {
|
||||
if (contextClass != null && InheritanceUtil.isInheritorOrSelf(thisClass, contextClass, true)) {
|
||||
contextClass = thisClass;
|
||||
}
|
||||
final PsiClass thisCandidate = RefactoringUtil.getThisClass(candidate);
|
||||
if (thisCandidate != null && InheritanceUtil.isInheritorOrSelf(thisCandidate, contextClass, true)) {
|
||||
contextClass = thisCandidate;
|
||||
}
|
||||
return contextClass != null && match.putParameter(parameter, RefactoringUtil.createThisExpression(patternQualifier.getManager(), contextClass));
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
public class BaseClass extends JComponent {
|
||||
}
|
||||
|
||||
class SubClass extends BaseClass {
|
||||
void a() {
|
||||
System.out.println(getLocation());
|
||||
}
|
||||
}
|
||||
|
||||
class Util {
|
||||
public static void met<caret>hod(BaseClass base) {
|
||||
System.out.println(base.getLocation());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
public class BaseClass extends JComponent {
|
||||
}
|
||||
|
||||
class SubClass extends BaseClass {
|
||||
void a() {
|
||||
Util.method(SubClass.this);
|
||||
}
|
||||
}
|
||||
|
||||
class Util {
|
||||
public static void method(BaseClass base) {
|
||||
System.out.println(base.getLocation());
|
||||
}
|
||||
}
|
||||
@@ -49,4 +49,8 @@ public class FindMethodDuplicatesMiscTest extends FindMethodDuplicatesBaseTest {
|
||||
public void testDetectNameConflictsWithStatic() throws Exception {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testCorrectThis() throws Exception {
|
||||
doTest();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user