From 74aa2772bfd2931b4a4219333f71a7909a10c593 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Tue, 30 Nov 2021 16:29:13 +0100 Subject: [PATCH] [java] Local records are a find boundary This fixes a ClassCastException in CloseResource --- .../pmd/lang/java/ast/ASTRecordDeclaration.java | 2 +- .../java/rule/errorprone/xml/CloseResource.xml | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordDeclaration.java index 8677b07122..f45133d327 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordDeclaration.java @@ -52,7 +52,7 @@ public final class ASTRecordDeclaration extends AbstractAnyTypeDeclaration { @Override public boolean isFindBoundary() { - return isNested(); + return isNested() || isLocal(); } @Override diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/errorprone/xml/CloseResource.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/errorprone/xml/CloseResource.xml index a037edd9a5..0f63419bf2 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/errorprone/xml/CloseResource.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/errorprone/xml/CloseResource.xml @@ -1680,4 +1680,18 @@ public class FalsePositive { } ]]> + + + ClassCastException with local record + 0 + +