IDEA-122014 Extract method duplicates analysis fails in case of inner classes

This commit is contained in:
Anna Kozlova
2014-03-18 16:49:04 +01:00
parent ed13961e23
commit 90698ca76c
3 changed files with 31 additions and 0 deletions
@@ -354,6 +354,17 @@ public class DuplicatesFinder {
return false;
}
if (qualifier1 == null && qualifier2 == null) {
final PsiClass patternClass = RefactoringChangeUtil.getThisClass(pattern);
final PsiClass candidateClass = RefactoringChangeUtil.getThisClass(candidate);
if (resolveResult1 == resolveResult2 &&
resolveResult1 instanceof PsiMember &&
!InheritanceUtil.isInheritorOrSelf(candidateClass, patternClass, true) &&
InheritanceUtil.isInheritorOrSelf(candidateClass, ((PsiMember)resolveResult1).getContainingClass(), true)) {
return false;
}
}
}
if (pattern instanceof PsiTypeCastExpression) {
@@ -0,0 +1,16 @@
class CommonParent {
void foo() {}
}
public class A extends CommonParent {
private void <caret>f() {
foo();
}
private class B extends CommonParent {
void g() {
foo();
}
}
}
@@ -51,6 +51,10 @@ public class FindMethodDuplicatesTest extends FindMethodDuplicatesBaseTest{
doTest();
}
public void testSkipNonRelatedCalls() throws Exception {
doTest(false);
}
public void testMappingAny2ParameterPrimitiveLvalue() throws Exception {
doTest(false);
}