diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/imports/ImportsAreUsedVisitor.java b/plugins/InspectionGadgets/src/com/siyeh/ig/imports/ImportsAreUsedVisitor.java index 6753839eb83d..ecdfbbb4be33 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/imports/ImportsAreUsedVisitor.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/imports/ImportsAreUsedVisitor.java @@ -44,14 +44,12 @@ class ImportsAreUsedVisitor extends JavaRecursiveElementVisitor { } @Override - public void visitReferenceElement( - @NotNull PsiJavaCodeReferenceElement reference) { + public void visitReferenceElement(@NotNull PsiJavaCodeReferenceElement reference) { followReferenceToImport(reference); super.visitReferenceElement(reference); } - private void followReferenceToImport( - PsiJavaCodeReferenceElement reference) { + private void followReferenceToImport(PsiJavaCodeReferenceElement reference) { if (reference.getQualifier() != null) { // it's already fully qualified, so the import statement wasn't // responsible @@ -89,8 +87,14 @@ class ImportsAreUsedVisitor extends JavaRecursiveElementVisitor { final String referenceName; if (element instanceof PsiMember) { final PsiMember member = (PsiMember)element; - referenceClass = member.getContainingClass(); - referenceName = member.getName(); + if (member instanceof PsiClass && !member.hasModifierProperty(PsiModifier.STATIC)) { + referenceClass = null; + referenceName = null; + } + else { + referenceClass = member.getContainingClass(); + referenceName = member.getName(); + } } else { referenceClass = null; diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/imports/unused/Constants.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/imports/unused/Constants.java index 6d8e9caff9ff..8aeb52ef35be 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/imports/unused/Constants.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/imports/unused/Constants.java @@ -4,4 +4,7 @@ public class Constants { public static final int SIZE = 213; + private int field = 0; // I'm not an utility class. + public static void instanceMatMethod() {} + @SuppressWarnings("InnerClassMayBeStatic") public class InstanceInnerMaterial {} } \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/imports/unused/UnusedImport.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/imports/unused/UnusedImport.java index adab39f11837..bbe03b5073f7 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/imports/unused/UnusedImport.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/imports/unused/UnusedImport.java @@ -6,6 +6,8 @@ import static java.lang.Math.*; import static java.lang.Integer.SIZE; import java.util.List; import java.util.ArrayList; +import static com.siyeh.igtest.imports.unused.Constants.*; +import com.siyeh.igtest.imports.unused.Constants.*; public class UnusedImport { @@ -22,4 +24,9 @@ public class UnusedImport { list.add(i); Entry entry; } + + public void context() { + instanceMatMethod(); + InstanceInnerMaterial innerMaterial = new Constants().new InstanceInnerMaterial(); + } } \ No newline at end of file