unnecessary inner class qualification inspection: avoid cases when resulted class won't be accessed in the call place (IDEA-78144); fix test data accordingly

This commit is contained in:
anna
2011-12-07 20:42:10 +01:00
parent e39f09af16
commit 5d35b1b62e
3 changed files with 10 additions and 19 deletions
@@ -168,8 +168,7 @@ public class UnnecessarilyQualifiedInnerClassAccessInspection
visitReferenceElement(expression);
}
private boolean isReferenceToTarget(
String referenceText, PsiClass target, PsiElement context) {
private boolean isReferenceToTarget(String referenceText, PsiClass target, PsiElement context) {
final PsiManager manager = target.getManager();
final JavaPsiFacade facade =
JavaPsiFacade.getInstance(manager.getProject());
@@ -177,8 +176,7 @@ public class UnnecessarilyQualifiedInnerClassAccessInspection
final PsiClass referencedClass =
resolveHelper.resolveReferencedClass(referenceText,
context);
return referencedClass == null ||
manager.areElementsEquivalent(target, referencedClass);
return manager.areElementsEquivalent(target, referencedClass);
}
private boolean isInImportOrPackage(PsiElement element) {
@@ -29,4 +29,11 @@ public class Test<T> {
}
@interface Y {
Class value();
}
}
class Foo extends PresenterWidget<Foo.Bar> { //no warning as Bar here is not accessible
interface Bar extends View { }
}
interface View {}
class PresenterWidget<T>{}
@@ -1,19 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<problems>
<problem>
<file>Test.java</file>
<line>3</line>
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Unnecessarily qualified inner class access</problem_class>
<description>'X' is unnecessarily qualified with &lt;code&gt;Test&lt;/code&gt; #loc</description>
</problem>
<problem>
<file>Test.java</file>
<line>7</line>
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Unnecessarily qualified inner class access</problem_class>
<description>'Entry' is unnecessarily qualified with &lt;code&gt;Map&lt;/code&gt; #loc</description>
</problem>
<problem>
<file>Test.java</file>