diff --git a/java-checks-test-sources/default/src/main/java/checks/unused/UnusedPrivateFieldCheck.java b/java-checks-test-sources/default/src/main/java/checks/unused/UnusedPrivateFieldCheck.java index 46ea217fb04..e2794fd5ee3 100644 --- a/java-checks-test-sources/default/src/main/java/checks/unused/UnusedPrivateFieldCheck.java +++ b/java-checks-test-sources/default/src/main/java/checks/unused/UnusedPrivateFieldCheck.java @@ -194,3 +194,16 @@ private void f() { } } +record MyRecord(int a) { + private static final int XXX = 3; // Noncompliant +// ^^^ + + // Non-private fields should not be reported. + static final int YYY = 4; + + private static final int USED = 5; + + int sum() { + return a + USED; + } +} diff --git a/java-checks/src/main/java/org/sonar/java/checks/unused/UnusedPrivateFieldCheck.java b/java-checks/src/main/java/org/sonar/java/checks/unused/UnusedPrivateFieldCheck.java index 0aee6c10d7c..6b65de2a075 100644 --- a/java-checks/src/main/java/org/sonar/java/checks/unused/UnusedPrivateFieldCheck.java +++ b/java-checks/src/main/java/org/sonar/java/checks/unused/UnusedPrivateFieldCheck.java @@ -99,7 +99,7 @@ public class UnusedPrivateFieldCheck extends IssuableSubscriptionVisitor { @Override public List nodesToVisit() { - return Arrays.asList(Tree.Kind.CLASS, Tree.Kind.METHOD, Tree.Kind.EXPRESSION_STATEMENT, Tree.Kind.IDENTIFIER); + return Arrays.asList(Tree.Kind.CLASS, Tree.Kind.RECORD, Tree.Kind.METHOD, Tree.Kind.EXPRESSION_STATEMENT, Tree.Kind.IDENTIFIER); } @Override @@ -129,7 +129,7 @@ public void visitNode(Tree tree) { case METHOD: checkIfNativeMethod((MethodTree) tree); break; - case CLASS: + case CLASS, RECORD: classes.add((ClassTree) tree); break; case EXPRESSION_STATEMENT: