IG: fix static import checking in "Unused import" inspection

This commit is contained in:
Bas Leijdekkers
2014-10-04 18:52:29 +02:00
parent dc8584bc79
commit 2012c4f720
2 changed files with 27 additions and 2 deletions
@@ -103,8 +103,15 @@ class ImportsAreUsedVisitor extends JavaRecursiveElementVisitor {
final boolean hasOnDemandImportConflict = ImportUtils.hasOnDemandImportConflict(qualifiedName, myFile);
for (PsiImportStatementBase importStatement : importStatements) {
if (!importStatement.isOnDemand()) {
if (member.equals(importStatement.resolve())) {
return importStatement;
final PsiJavaCodeReferenceElement reference = importStatement.getImportReference();
if (reference == null) {
continue;
}
final JavaResolveResult[] targets = reference.multiResolve(false);
for (JavaResolveResult target : targets) {
if (member.equals(target.getElement())) {
return importStatement;
}
}
}
else {
@@ -54,6 +54,15 @@ public class UnusedImportInspectionTest extends LightInspectionTestCase {
"}");
}
public void testExactStaticImport() {
doTest("package a;\n" +
"import static java.lang.Math.abs;\n" +
"/*Unused import 'import static java.lang.Math.max;'*/import static java.lang.Math.max;/**/\n" +
"class Main {{\n" +
" abs(1);\n" +
"}}");
}
public void testStaticImportOnDemandConflict1() {
addEnvironmentClass("package a;" +
"public class Parent {" +
@@ -183,6 +192,15 @@ public class UnusedImportInspectionTest extends LightInspectionTestCase {
"}}");
}
public void testNoConflictInSamePackage() {
doTest("package a;" +
"/*Unused import 'import java.util.List;'*/import java.util.List;/**/" +
"import java.util.*;" +
"class X {{" +
" List list = new ArrayList();" +
"}}");
}
@Override
protected LocalInspectionTool getInspection() {
return new UnusedImportInspection();