diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticUsageInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticUsageInspection.java index 5aceee2ce3d9..f4c0fc9c4bf5 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticUsageInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticUsageInspection.java @@ -152,26 +152,8 @@ public class UnnecessarilyQualifiedStaticUsageInspection if (!(qualifierElement instanceof PsiJavaCodeReferenceElement)) { return false; } - final PsiJavaCodeReferenceElement qualifier = - (PsiJavaCodeReferenceElement)qualifierElement; - final PsiReferenceParameterList qualifierParameterList = - qualifier.getParameterList(); - if (qualifierParameterList != null) { - final PsiTypeElement[] typeParameterElements = - qualifierParameterList.getTypeParameterElements(); - if (typeParameterElements.length > 0) { - return false; - } - } - final PsiReferenceParameterList parameterList = - referenceElement.getParameterList(); - if (parameterList != null) { - final PsiTypeElement[] typeParameterElements = - parameterList.getTypeParameterElements(); - if (typeParameterElements.length > 0) { - return false; - } - } + final PsiJavaCodeReferenceElement qualifier = (PsiJavaCodeReferenceElement)qualifierElement; + if (isGenericReference(referenceElement, qualifier)) return false; final PsiElement target = referenceElement.resolve(); if ((!(target instanceof PsiField) || m_ignoreStaticFieldAccesses) && (!(target instanceof PsiMethod) || m_ignoreStaticMethodCalls)) { @@ -259,4 +241,23 @@ public class UnnecessarilyQualifiedStaticUsageInspection return false; } } + + static boolean isGenericReference(PsiJavaCodeReferenceElement referenceElement, PsiJavaCodeReferenceElement qualifierElement) { + final PsiReferenceParameterList qualifierParameterList = qualifierElement.getParameterList(); + if (qualifierParameterList != null) { + final PsiTypeElement[] typeParameterElements = qualifierParameterList.getTypeParameterElements(); + if (typeParameterElements.length > 0) { + return true; + } + } + + final PsiReferenceParameterList parameterList = referenceElement.getParameterList(); + if (parameterList != null) { + final PsiTypeElement[] typeParameterElements = parameterList.getTypeParameterElements(); + if (typeParameterElements.length > 0) { + return true; + } + } + return false; + } } \ No newline at end of file diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticallyImportedElementInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticallyImportedElementInspection.java index 46651e6d91ad..1ce41361f7b1 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticallyImportedElementInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticallyImportedElementInspection.java @@ -99,6 +99,7 @@ public class UnnecessarilyQualifiedStaticallyImportedElementInspection if (parent instanceof PsiImportStatementBase) { return; } + if (UnnecessarilyQualifiedStaticUsageInspection.isGenericReference(reference, (PsiJavaCodeReferenceElement)qualifier)) return; final PsiElement target = reference.resolve(); if (!(target instanceof PsiMember)) { return; diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/expected.xml index 86de08853a3b..a5b6f15a80c8 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/expected.xml +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/expected.xml @@ -2,7 +2,7 @@ U.java - 14 + 15 p Unnecessarily qualified statically imported element Statically imported element 'a' is unnecessarily qualified with <code>B</code> #loc diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/src/p/Foo.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/src/p/Foo.java new file mode 100644 index 000000000000..d8815d8f40f6 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/src/p/Foo.java @@ -0,0 +1,5 @@ +package p; + +class Foo { + static void foo() {} +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/src/p/U.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/src/p/U.java index cccbfc90ef2c..2e8f04fbfe0c 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/src/p/U.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_statically_imported_element/sameMemberNames/src/p/U.java @@ -2,6 +2,7 @@ package p; import static p.EnumA.values; import static p.A.a; +import static p.Foo.*; class U { void foo() { @@ -14,4 +15,7 @@ class U { B.a(); } + void aaaa() { + Foo.foo(); + } } \ No newline at end of file