diff --git a/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties index 156403e44471..a9ccb62ac478 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties +++ b/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties @@ -376,8 +376,8 @@ field.name.hides.in.superclass.ignore.option=Ignore superclass fields not visibl inner.class.field.hides.outer.display.name=Inner class field hides outer class field inner.class.field.hides.outer.ignore.option=Ignore outer fields not visible from inner class inner.class.field.hides.outer.problem.descriptor=Inner class field #ref hides outer class field #loc -local.variable.hides.member.variable.display.name=Local variable hides member variable -local.variable.hides.member.variable.problem.descriptor=Local variable #ref hides member variable #loc +local.variable.hides.member.variable.display.name=Local variable hides field +local.variable.hides.member.variable.problem.descriptor=Local variable #ref hides field in class ''{0}'' #loc local.variable.hides.member.variable.ignore.option=Ignore local variables in static methods method.overloads.display.name=Method overloads method of superclass method.overloads.problem.descriptor=Method #ref() overloads a compatible method of a superclass, when overriding might have been intended #loc @@ -386,8 +386,8 @@ method.overrides.private.display.name=Method overrides private method of supercl method.overrides.private.display.name.problem.descriptor=Method #ref() overrides a private method of a superclass #loc method.overrides.static.display.name=Method overrides static method of superclass method.overrides.static.problem.descriptor=Method #ref() overrides a static method of a superclass #loc -parameter.hides.member.variable.display.name=Parameter hides member variable -parameter.hides.member.variable.problem.descriptor=Parameter #ref hides member variable #loc +parameter.hides.member.variable.display.name=Parameter hides field +parameter.hides.member.variable.problem.descriptor=Parameter #ref hides field in class ''{0}'' #loc parameter.hides.member.variable.ignore.setters.option=Ignore for property setters parameter.hides.member.variable.ignore.superclass.option=Ignore superclass fields not visible from subclass parameter.hides.member.variable.ignore.constructors.option=Ignore for constructors diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/visibility/LocalVariableHidingMemberVariableInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/visibility/LocalVariableHidingMemberVariableInspection.java index 615bec761ee5..68b0ce5a49b6 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/visibility/LocalVariableHidingMemberVariableInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/visibility/LocalVariableHidingMemberVariableInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2012 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,19 +25,16 @@ import com.siyeh.ig.fixes.RenameFix; import com.siyeh.ig.psiutils.ClassUtils; import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.swing.*; -public class LocalVariableHidingMemberVariableInspection - extends BaseInspection { +public class LocalVariableHidingMemberVariableInspection extends BaseInspection { - /** - * @noinspection PublicField - */ + @SuppressWarnings("PublicField") public boolean m_ignoreInvisibleFields = true; - /** - * @noinspection PublicField - */ + + @SuppressWarnings("PublicField") public boolean m_ignoreStaticMethods = true; @NotNull @@ -47,8 +44,7 @@ public class LocalVariableHidingMemberVariableInspection @NotNull public String getDisplayName() { - return InspectionGadgetsBundle.message( - "local.variable.hides.member.variable.display.name"); + return InspectionGadgetsBundle.message("local.variable.hides.member.variable.display.name"); } protected InspectionGadgetsFix buildFix(Object... infos) { @@ -61,19 +57,14 @@ public class LocalVariableHidingMemberVariableInspection @NotNull public String buildErrorString(Object... infos) { - return InspectionGadgetsBundle.message( - "local.variable.hides.member.variable.problem.descriptor"); + final PsiClass aClass = (PsiClass)infos[0]; + return InspectionGadgetsBundle.message("local.variable.hides.member.variable.problem.descriptor", aClass.getName()); } public JComponent createOptionsPanel() { - final MultipleCheckboxOptionsPanel optionsPanel = - new MultipleCheckboxOptionsPanel(this); - optionsPanel.addCheckbox(InspectionGadgetsBundle.message( - "field.name.hides.in.superclass.ignore.option"), - "m_ignoreInvisibleFields"); - optionsPanel.addCheckbox(InspectionGadgetsBundle.message( - "local.variable.hides.member.variable.ignore.option"), - "m_ignoreStaticMethods"); + final MultipleCheckboxOptionsPanel optionsPanel = new MultipleCheckboxOptionsPanel(this); + optionsPanel.addCheckbox(InspectionGadgetsBundle.message("field.name.hides.in.superclass.ignore.option"), "m_ignoreInvisibleFields"); + optionsPanel.addCheckbox(InspectionGadgetsBundle.message("local.variable.hides.member.variable.ignore.option"), "m_ignoreStaticMethods"); return optionsPanel; } @@ -81,71 +72,65 @@ public class LocalVariableHidingMemberVariableInspection return new LocalVariableHidingMemberVariableVisitor(); } - private class LocalVariableHidingMemberVariableVisitor - extends BaseInspectionVisitor { + private class LocalVariableHidingMemberVariableVisitor extends BaseInspectionVisitor { @Override public void visitLocalVariable(@NotNull PsiLocalVariable variable) { super.visitLocalVariable(variable); if (m_ignoreStaticMethods) { - final PsiMethod aMethod = - PsiTreeUtil.getParentOfType(variable, - PsiMethod.class); - if (aMethod == null) { - return; - } - if (aMethod.hasModifierProperty(PsiModifier.STATIC)) { + final PsiMember member = PsiTreeUtil.getParentOfType(variable, PsiMethod.class, PsiClassInitializer.class); + if (member != null && member.hasModifierProperty(PsiModifier.STATIC)) { return; } } - final PsiClass aClass = - ClassUtils.getContainingClass(variable); + final PsiClass aClass = checkFieldNames(variable); if (aClass == null) { return; } - final String variableName = variable.getName(); - final PsiField[] fields = aClass.getAllFields(); - for (final PsiField field : fields) { - if (checkFieldName(field, variableName, aClass)) { - registerVariableError(variable); - } - } + registerVariableError(variable, aClass); } @Override public void visitParameter(@NotNull PsiParameter variable) { super.visitParameter(variable); - if (!(variable.getDeclarationScope() instanceof PsiCatchSection)) { + final PsiElement declarationScope = variable.getDeclarationScope(); + if (!(declarationScope instanceof PsiCatchSection) && !(declarationScope instanceof PsiForeachStatement)) { return; } - final PsiClass aClass = - ClassUtils.getContainingClass(variable); + if (m_ignoreStaticMethods) { + final PsiMember member = PsiTreeUtil.getParentOfType(variable, PsiMethod.class, PsiClassInitializer.class); + if (member != null && member.hasModifierProperty(PsiModifier.STATIC)) { + return; + } + } + final PsiClass aClass = checkFieldNames(variable); if (aClass == null) { return; } - final String variableName = variable.getName(); - final PsiField[] fields = aClass.getAllFields(); - for (final PsiField field : fields) { - if (checkFieldName(field, variableName, aClass)) { - registerVariableError(variable); - } - } + registerVariableError(variable, aClass); } - private boolean checkFieldName(PsiField field, String variableName, - PsiClass aClass) { - if (field == null) { - return false; + @Nullable + private PsiClass checkFieldNames(PsiVariable variable) { + PsiClass aClass = ClassUtils.getContainingClass(variable); + final String variableName = variable.getName(); + if (variableName == null) { + return null; } - final String fieldName = field.getName(); - if (fieldName == null) { - return false; + while (aClass != null) { + final PsiField[] fields = aClass.getAllFields(); + for (PsiField field : fields) { + final String fieldName = field.getName(); + if (!variableName.equals(fieldName)) { + continue; + } + if (!m_ignoreInvisibleFields || ClassUtils.isFieldVisible(field, aClass)) { + return aClass; + } + } + aClass = ClassUtils.getContainingClass(aClass); } - if (!fieldName.equals(variableName)) { - return false; - } - return !m_ignoreInvisibleFields || - ClassUtils.isFieldVisible(field, aClass); + return null; } } } \ No newline at end of file diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspection.java index 7fcbde4c7a29..113794cfd4a0 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2012 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,6 @@ package com.siyeh.ig.visibility; import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel; import com.intellij.psi.*; -import com.intellij.psi.util.PsiTreeUtil; import com.siyeh.HardcodedMethodConstants; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; @@ -26,30 +25,25 @@ import com.siyeh.ig.InspectionGadgetsFix; import com.siyeh.ig.fixes.RenameFix; import com.siyeh.ig.psiutils.ClassUtils; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.swing.*; public class ParameterHidingMemberVariableInspection extends BaseInspection { - /** - * @noinspection PublicField - */ + @SuppressWarnings("PublicField") public boolean m_ignoreInvisibleFields = true; - /** - * @noinspection PublicField - */ + + @SuppressWarnings("PublicField") public boolean m_ignoreStaticMethodParametersHidingInstanceFields = false; - /** - * @noinspection PublicField - */ + + @SuppressWarnings("PublicField") public boolean m_ignoreForConstructors = false; - /** - * @noinspection PublicField - */ + + @SuppressWarnings("PublicField") public boolean m_ignoreForPropertySetters = false; - /** - * @noinspection PublicField - */ + + @SuppressWarnings("PublicField") public boolean m_ignoreForAbstractMethods = false; @NotNull @@ -59,8 +53,7 @@ public class ParameterHidingMemberVariableInspection extends BaseInspection { @NotNull public String getDisplayName() { - return InspectionGadgetsBundle.message( - "parameter.hides.member.variable.display.name"); + return InspectionGadgetsBundle.message("parameter.hides.member.variable.display.name"); } protected InspectionGadgetsFix buildFix(Object... infos) { @@ -73,27 +66,21 @@ public class ParameterHidingMemberVariableInspection extends BaseInspection { @NotNull public String buildErrorString(Object... infos) { - return InspectionGadgetsBundle.message( - "parameter.hides.member.variable.problem.descriptor"); + final PsiClass aClass = (PsiClass)infos[0]; + return InspectionGadgetsBundle.message("parameter.hides.member.variable.problem.descriptor", aClass.getName()); } public JComponent createOptionsPanel() { - final MultipleCheckboxOptionsPanel optionsPanel = - new MultipleCheckboxOptionsPanel(this); - optionsPanel.addCheckbox(InspectionGadgetsBundle.message( - "parameter.hides.member.variable.ignore.setters.option"), + final MultipleCheckboxOptionsPanel optionsPanel = new MultipleCheckboxOptionsPanel(this); + optionsPanel.addCheckbox(InspectionGadgetsBundle.message("parameter.hides.member.variable.ignore.setters.option"), "m_ignoreForPropertySetters"); - optionsPanel.addCheckbox(InspectionGadgetsBundle.message( - "parameter.hides.member.variable.ignore.superclass.option"), + optionsPanel.addCheckbox(InspectionGadgetsBundle.message("parameter.hides.member.variable.ignore.superclass.option"), "m_ignoreInvisibleFields"); - optionsPanel.addCheckbox(InspectionGadgetsBundle.message( - "parameter.hides.member.variable.ignore.constructors.option"), + optionsPanel.addCheckbox(InspectionGadgetsBundle.message("parameter.hides.member.variable.ignore.constructors.option"), "m_ignoreForConstructors"); - optionsPanel.addCheckbox(InspectionGadgetsBundle.message( - "parameter.hides.member.variable.ignore.abstract.methods.option"), + optionsPanel.addCheckbox(InspectionGadgetsBundle.message("parameter.hides.member.variable.ignore.abstract.methods.option"), "m_ignoreForAbstractMethods"); - optionsPanel.addCheckbox(InspectionGadgetsBundle.message( - "parameter.hides.member.variable.ignore.static.parameters.option"), + optionsPanel.addCheckbox(InspectionGadgetsBundle.message("parameter.hides.member.variable.ignore.static.parameters.option"), "m_ignoreStaticMethodParametersHidingInstanceFields"); return optionsPanel; } @@ -102,21 +89,16 @@ public class ParameterHidingMemberVariableInspection extends BaseInspection { return new ParameterHidingMemberVariableVisitor(); } - private class ParameterHidingMemberVariableVisitor - extends BaseInspectionVisitor { + private class ParameterHidingMemberVariableVisitor extends BaseInspectionVisitor { @Override public void visitParameter(@NotNull PsiParameter variable) { super.visitParameter(variable); - if (variable.getDeclarationScope() instanceof PsiCatchSection) { - return; - } - final PsiMethod method = - PsiTreeUtil.getParentOfType(variable, - PsiMethod.class); - if (method == null) { + final PsiElement declarationScope = variable.getDeclarationScope(); + if (!(declarationScope instanceof PsiMethod)) { return; } + final PsiMethod method = (PsiMethod)declarationScope; if (m_ignoreForConstructors && method.isConstructor()) { return; } @@ -125,51 +107,49 @@ public class ParameterHidingMemberVariableInspection extends BaseInspection { return; } final PsiClass containingClass = method.getContainingClass(); - if (containingClass.isInterface()) { + if (containingClass != null && containingClass.isInterface()) { return; } } if (m_ignoreForPropertySetters) { final String methodName = method.getName(); final PsiType returnType = method.getReturnType(); - if (methodName.startsWith(HardcodedMethodConstants.SET) && - PsiType.VOID.equals(returnType)) { + if (methodName.startsWith(HardcodedMethodConstants.SET) && PsiType.VOID.equals(returnType)) { return; } } - final PsiClass aClass = - ClassUtils.getContainingClass(variable); - if (aClass == null) { + final PsiClass aClass = checkFieldName(variable, method); + if (aClass == null) { return; } + registerVariableError(variable, aClass); + } + + @Nullable + private PsiClass checkFieldName(PsiVariable variable, PsiMethod method) { final String variableName = variable.getName(); - final PsiField[] fields = aClass.getAllFields(); - for (final PsiField field : fields) { - if (checkFieldName(field, variableName, aClass)) { - if (m_ignoreStaticMethodParametersHidingInstanceFields && - !field.hasModifierProperty(PsiModifier.STATIC) && + if (variableName == null) { + return null; + } + PsiClass aClass = ClassUtils.getContainingClass(variable); + while (aClass != null) { + final PsiField[] fields = aClass.getAllFields(); + for (PsiField field : fields) { + final String fieldName = field.getName(); + if (!variableName.equals(fieldName)) { + continue; + } + if (m_ignoreStaticMethodParametersHidingInstanceFields && !field.hasModifierProperty(PsiModifier.STATIC) && method.hasModifierProperty(PsiModifier.STATIC)) { continue; } - registerVariableError(variable); + if (!m_ignoreInvisibleFields || ClassUtils.isFieldVisible(field, aClass)) { + return aClass; + } } + aClass = ClassUtils.getContainingClass(aClass); } - } - - private boolean checkFieldName(PsiField field, String variableName, - PsiClass aClass) { - if (field == null) { - return false; - } - final String fieldName = field.getName(); - if (fieldName == null) { - return false; - } - if (!fieldName.equals(variableName)) { - return false; - } - return !m_ignoreInvisibleFields || - ClassUtils.isFieldVisible(field, aClass); + return null; } } } \ No newline at end of file diff --git a/plugins/InspectionGadgets/src/inspectionDescriptions/LocalVariableHidingMemberVariable.html b/plugins/InspectionGadgets/src/inspectionDescriptions/LocalVariableHidingMemberVariable.html index adb840c83e8d..bfbca0582cdd 100644 --- a/plugins/InspectionGadgets/src/inspectionDescriptions/LocalVariableHidingMemberVariable.html +++ b/plugins/InspectionGadgets/src/inspectionDescriptions/LocalVariableHidingMemberVariable.html @@ -1,7 +1,8 @@ -Reports local variables being named identically to visible member variables of their -class. Such a variable name may be confusing. +Reports local variables named identically to visible fields of their class +or surrounding classes if it is a local variable inside of an inner or anonymous class. +Such a variable name may be confusing.

Powered by InspectionGadgets diff --git a/plugins/InspectionGadgets/src/inspectionDescriptions/ParameterHidingMemberVariable.html b/plugins/InspectionGadgets/src/inspectionDescriptions/ParameterHidingMemberVariable.html index aed894a0568a..977c6314731b 100644 --- a/plugins/InspectionGadgets/src/inspectionDescriptions/ParameterHidingMemberVariable.html +++ b/plugins/InspectionGadgets/src/inspectionDescriptions/ParameterHidingMemberVariable.html @@ -1,7 +1,8 @@ -Reports method parameters being named identically to visible member variables of their -class. Such a parameter name may be confusing. +Reports method parameters named identically to visible fields of their class +or surrounding classes if it is a parameter inside of an inner or anonymous class. +Such a parameter name may be confusing.

Powered by InspectionGadgets diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/FieldHidesSuperclassFieldInspection.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/FieldHidesSuperclassFieldInspection.java deleted file mode 100644 index ffcf0445b7cf..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/FieldHidesSuperclassFieldInspection.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.siyeh.igtest.visibility; - -import java.util.Set; -import java.util.HashSet; - -public class FieldHidesSuperclassFieldInspection extends LocalVariableHidingMemberVariableInspection -{ - private int m_barangus = -1; - - public FieldHidesSuperclassFieldInspection(int barangus) - { - super(barangus); - } - - public void foo() - { - System.out.println("bar" + m_barangus); - } -} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/LocalVariableHidingMemberVariableInspection.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/LocalVariableHidingMemberVariableInspection.java deleted file mode 100644 index 4d5527c51414..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/LocalVariableHidingMemberVariableInspection.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.siyeh.igtest.visibility; - -import com.siyeh.igtest.visibility2.DifferentPackageClass; - - -public class LocalVariableHidingMemberVariableInspection extends DifferentPackageClass -{ - private int m_barangus = -1; - - public LocalVariableHidingMemberVariableInspection(int barangus) - { - m_barangus = barangus; - } - - public void foo() - { - int fooBar; - final Object m_barangus = new Object(); - System.out.println("bar" + m_barangus); - } - - public void setBarangus(int barangus) - { - m_barangus = barangus; - System.out.println(m_barangus); - } -} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ParameterHidingMemberVariableInspection.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ParameterHidingMemberVariableInspection.java deleted file mode 100644 index c33ce8f54197..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ParameterHidingMemberVariableInspection.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.siyeh.igtest.visibility; - -import java.util.Set; -import java.util.HashSet; - -public class ParameterHidingMemberVariableInspection -{ - private int bar = -1; - - public ParameterHidingMemberVariableInspection(int bar) - { - this.bar = bar; - } - - public void setBar(int bar) - { - this.bar = bar; - } - - public void foo(Object bar) - { - System.out.println("bar" + bar); - } -} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/local_variable_hiding_member_variable/LocalVariableHidingMemberVariable.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/local_variable_hiding_member_variable/LocalVariableHidingMemberVariable.java new file mode 100644 index 000000000000..353e2b79fde8 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/local_variable_hiding_member_variable/LocalVariableHidingMemberVariable.java @@ -0,0 +1,55 @@ +package com.siyeh.igtest.visibility.local_variable_hiding_member_variable; + +import com.siyeh.igtest.visibility2.DifferentPackageClass; + +import java.util.List; + + +public class LocalVariableHidingMemberVariable extends DifferentPackageClass +{ + private int m_barangus = -1; + + public LocalVariableHidingMemberVariable(int barangus) + { + m_barangus = barangus; + } + + public void foo() + { + int fooBar; + final Object m_barangus = new Object(); + System.out.println("bar" + m_barangus); + } + + public void setBarangus(int barangus) + { + m_barangus = barangus; + System.out.println(m_barangus); + } + + public void innerContainer() { + new Object() { + void foo() { + Object m_barangus = new Object(); + } + }; + } + + public void foreach(List list) { + for (String m_barangus : list) { + + } + } + + { + final Object m_barangus = new Object(); + } + + static { + final Object m_barangus = new Object(); + } + + static void silentForeach(List list) { + for (String m_barangus : list) {} + } +} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/local_variable_hiding_member_variable/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/local_variable_hiding_member_variable/expected.xml new file mode 100644 index 000000000000..43bea6603064 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/local_variable_hiding_member_variable/expected.xml @@ -0,0 +1,30 @@ + + + + LocalVariableHidingMemberVariable.java + 20 + Local variable hides field + Local variable <code>m_barangus</code> hides field in class 'LocalVariableHidingMemberVariable' #loc + + + + LocalVariableHidingMemberVariable.java + 33 + Local variable hides field + Local variable <code>m_barangus</code> hides field in class 'LocalVariableHidingMemberVariable' #loc + + + + LocalVariableHidingMemberVariable.java + 39 + Local variable hides field + Local variable <code>m_barangus</code> hides field in class 'LocalVariableHidingMemberVariable' #loc + + + + LocalVariableHidingMemberVariable.java + 45 + Local variable hides field + Local variable <code>m_barangus</code> hides field in class 'LocalVariableHidingMemberVariable' #loc + + \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/parameter_hiding_member_variable/ParameterHidingMemberVariable.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/parameter_hiding_member_variable/ParameterHidingMemberVariable.java new file mode 100644 index 000000000000..3cea3b6e95b7 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/parameter_hiding_member_variable/ParameterHidingMemberVariable.java @@ -0,0 +1,33 @@ +package com.siyeh.igtest.visibility.parameter_hiding_member_variable; + +public class ParameterHidingMemberVariable +{ + private int bar = -1; + + public ParameterHidingMemberVariable(int bar) + { + this.bar = bar; + } + + public void setBar(int bar) + { + this.bar = bar; + } + + public void foo(Object bar) + { + System.out.println("bar" + bar); + } + + private static String x = "hello"; + + @Override + public String toString() { + new Object() { + public void foo(final String x) { + System.out.println(x); + } + }; + return x+super.toString(); + } +} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/parameter_hiding_member_variable/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/parameter_hiding_member_variable/expected.xml new file mode 100644 index 000000000000..fd27719fa90c --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/parameter_hiding_member_variable/expected.xml @@ -0,0 +1,30 @@ + + + + ParameterHidingMemberVariable.java + 7 + Parameter hides field + Parameter <code>bar</code> hides field in class 'ParameterHidingMemberVariable' #loc + + + + ParameterHidingMemberVariable.java + 12 + Parameter hides field + Parameter <code>bar</code> hides field in class 'ParameterHidingMemberVariable' #loc + + + + ParameterHidingMemberVariable.java + 17 + Parameter hides field + Parameter <code>bar</code> hides field in class 'ParameterHidingMemberVariable' #loc + + + + ParameterHidingMemberVariable.java + 27 + Parameter hides field + Parameter <code>x</code> hides field in class 'ParameterHidingMemberVariable' #loc + + \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/visibility/LocalVariableHidingMemberVariableInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/visibility/LocalVariableHidingMemberVariableInspectionTest.java new file mode 100644 index 000000000000..6de4b976fa76 --- /dev/null +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/visibility/LocalVariableHidingMemberVariableInspectionTest.java @@ -0,0 +1,27 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.siyeh.ig.visibility; + +import com.siyeh.ig.IGInspectionTestCase; + +public class LocalVariableHidingMemberVariableInspectionTest extends IGInspectionTestCase { + + public void test() throws Exception { + final LocalVariableHidingMemberVariableInspection inspection = new LocalVariableHidingMemberVariableInspection(); + inspection.m_ignoreStaticMethods = true; + doTest("com/siyeh/igtest/visibility/local_variable_hiding_member_variable", inspection); + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspectionTest.java new file mode 100644 index 000000000000..38d6be5d0954 --- /dev/null +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/visibility/ParameterHidingMemberVariableInspectionTest.java @@ -0,0 +1,25 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.siyeh.ig.visibility; + +import com.siyeh.ig.IGInspectionTestCase; + +public class ParameterHidingMemberVariableInspectionTest extends IGInspectionTestCase { + + public void test() throws Exception { + doTest("com/siyeh/igtest/visibility/parameter_hiding_member_variable", new ParameterHidingMemberVariableInspection()); + } +} \ No newline at end of file