diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspectionBase.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspectionBase.java index 64fcaa666c83..6c3cf389463e 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspectionBase.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspectionBase.java @@ -34,7 +34,7 @@ public class ParameterHidingMemberVariableInspectionBase extends BaseInspection public boolean m_ignoreInvisibleFields = true; @SuppressWarnings("PublicField") - public boolean m_ignoreStaticMethodParametersHidingInstanceFields = false; + public boolean m_ignoreStaticMethodParametersHidingInstanceFields = true; @SuppressWarnings("PublicField") public boolean m_ignoreForConstructors = false; @@ -150,6 +150,9 @@ public class ParameterHidingMemberVariableInspectionBase extends BaseInspection (!m_ignoreInvisibleFields || ClassUtils.isFieldVisible(field, aClass))) { return aClass; } + if (aClass.hasModifierProperty(PsiModifier.STATIC) && m_ignoreStaticMethodParametersHidingInstanceFields) { + return null; + } aClass = ClassUtils.getContainingClass(aClass); } return null; diff --git a/plugins/InspectionGadgets/src/inspectionDescriptions/ParameterHidingMemberVariable.html b/plugins/InspectionGadgets/src/inspectionDescriptions/ParameterHidingMemberVariable.html index 6c713d638683..d8fa5f3bcc68 100644 --- a/plugins/InspectionGadgets/src/inspectionDescriptions/ParameterHidingMemberVariable.html +++ b/plugins/InspectionGadgets/src/inspectionDescriptions/ParameterHidingMemberVariable.html @@ -5,6 +5,18 @@ or surrounding classes if it is a parameter inside of an inner or anonymous clas Such a parameter name may be confusing.
+Use the first checkbox to ignore parameters of simple setters. +
+Use the second checkbox to ignore for private fields in a superclass, which are not visible from the parameter. +
+Use the third checkbox to ignore parameters of constructors. +
+Use the fourth checkbox to ignore parameters of abstract methods. +
+Use the fifth checkbox to ignore parameters of static methods hiding an instance field and +to ignore parameters of instance methods in static inner classes hiding an instance field in an outer class. +While not strictly hiding, such parameters can still be confusing. +