mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
method duplicates: correctly process qualifiers (IDEA-79954)
This commit is contained in:
@@ -395,7 +395,7 @@ public class DuplicatesFinder {
|
||||
PsiClass contextClass = PsiTreeUtil.getParentOfType(pattern, PsiClass.class);
|
||||
if (candidateQualifier instanceof PsiReferenceExpression) {
|
||||
final PsiElement resolved = ((PsiReferenceExpression)candidateQualifier).resolve();
|
||||
if (resolved instanceof PsiClass && contextClass != null && contextClass.isInheritor((PsiClass)resolved, true)) {
|
||||
if (resolved instanceof PsiClass && contextClass != null && InheritanceUtil.isInheritorOrSelf(contextClass, (PsiClass)resolved, true)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -430,7 +430,7 @@ public class DuplicatesFinder {
|
||||
final PsiElement resolved = ((PsiReferenceExpression)patternQualifier).resolve();
|
||||
if (resolved instanceof PsiClass) {
|
||||
final PsiClass classContext = PsiTreeUtil.getParentOfType(candidate, PsiClass.class);
|
||||
if (classContext != null && classContext.isInheritor((PsiClass)resolved, true)) {
|
||||
if (classContext != null && InheritanceUtil.isInheritorOrSelf(classContext, (PsiClass)resolved, true)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
class Utilz {
|
||||
static int func(){
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int foo1(){
|
||||
return 2*Utilz.func();
|
||||
}
|
||||
|
||||
static int fo<caret>o2(){
|
||||
return 2*func();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Something {
|
||||
Something(){
|
||||
int x = 2*Utilz.func();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
class Utilz {
|
||||
static int func(){
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int foo1(){
|
||||
return foo2();
|
||||
}
|
||||
|
||||
static int foo2(){
|
||||
return 2*func();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Something {
|
||||
Something(){
|
||||
int x = Utilz.foo2();
|
||||
}
|
||||
}
|
||||
@@ -89,4 +89,8 @@ public class FindMethodDuplicatesMiscTest extends FindMethodDuplicatesBaseTest {
|
||||
public void testSkipNotAccessible() throws Exception {
|
||||
doTest(false);
|
||||
}
|
||||
|
||||
public void testQualifiers() throws Exception {
|
||||
doTest();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user