parameter hides field: suppress for records components (IDEA-232714)

GitOrigin-RevId: fca757526396f6cd60748d7a8a3d2c246533d17a
This commit is contained in:
Anna Kozlova
2020-02-25 20:37:04 +00:00
committed by intellij-monorepo-bot
parent d0e04761d7
commit 0c5bf65e7a
3 changed files with 15 additions and 0 deletions
@@ -17,6 +17,7 @@ package com.siyeh.ig.visibility;
import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel;
import com.intellij.psi.*;
import com.intellij.psi.util.JavaPsiRecordUtil;
import com.intellij.psi.util.PropertyUtilBase;
import com.siyeh.HardcodedMethodConstants;
import com.siyeh.InspectionGadgetsBundle;
@@ -141,6 +142,7 @@ public class ParameterHidingMemberVariableInspection extends BaseInspection {
while (aClass != null) {
final PsiField field = aClass.findFieldByName(variableName, true);
if (field != null &&
JavaPsiRecordUtil.getComponentForField(field) == null &&
(!m_ignoreStaticMethodParametersHidingInstanceFields ||
field.hasModifierProperty(PsiModifier.STATIC) || !method.hasModifierProperty(PsiModifier.STATIC)) &&
(!m_ignoreInvisibleFields || ClassUtils.isFieldVisible(field, aClass))) {
@@ -44,3 +44,9 @@ public class ParameterHidingMemberVariable
void a(int i) {}
}
}
record R(int i) {
public R( int i){
this.i = i;
}
}
@@ -16,7 +16,9 @@
package com.siyeh.ig.visibility;
import com.intellij.codeInspection.InspectionProfileEntry;
import com.intellij.testFramework.LightProjectDescriptor;
import com.siyeh.ig.LightJavaInspectionTestCase;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class ParameterHidingMemberVariableInspectionTest extends LightJavaInspectionTestCase {
@@ -25,6 +27,11 @@ public class ParameterHidingMemberVariableInspectionTest extends LightJavaInspec
doTest();
}
@Override
protected @NotNull LightProjectDescriptor getProjectDescriptor() {
return JAVA_14;
}
@Nullable
@Override
protected InspectionProfileEntry getInspection() {