From ac1792959a409190eb73f2ff91452520e3cb7efe Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Thu, 4 Mar 2021 09:52:21 +0100 Subject: [PATCH] [java] ConsecutiveLiteralAppend false-positive with builder inside lambda Add test case for #2427, already fixed since PMD 6.25.0 --- docs/pages/release_notes.md | 3 ++ .../xml/ConsecutiveLiteralAppends.xml | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index b8f8783555..47a414bc8f 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -16,6 +16,9 @@ This is a {{ site.pmd.release_type }} release. ### Fixed Issues +* java-performance + * [#2427](https://github.com/pmd/pmd/issues/2427): \[java] ConsecutiveLiteralAppend false-positive with builder inside lambda + ### API Changes ### External Contributions diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/ConsecutiveLiteralAppends.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/ConsecutiveLiteralAppends.xml index c72fd4f721..1722019d90 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/ConsecutiveLiteralAppends.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/ConsecutiveLiteralAppends.xml @@ -1497,4 +1497,32 @@ public class Foo { } ]]> + + [java] ConsecutiveLiteralAppend false-positive with builder inside lambda #2427 + 0 + , Consumer> consumerMap, final StringBuilder builder) { + consumerMap.put(Collection.class, o -> { + builder.append('['); + Collection collection = (Collection) o; + collection.forEach(t -> builder.append(t)); + builder.append(']'); // here reported (with pmd 6.22.0) + }); + + consumerMap.put(Map.class, o -> { + builder.append('{'); + Map map = (Map) o; + map.forEach((k, v) -> builder.append(k).append('=').append(v)); + builder.append('}'); + }); + } +} + ]]> +