diff --git a/java-checks-test-sources/default/src/main/java/checks/CollectorsToListCheckSample.java b/java-checks-test-sources/default/src/main/java/checks/CollectorsToListCheckSample.java index 7f017ef33c..f6e4636a7b 100644 --- a/java-checks-test-sources/default/src/main/java/checks/CollectorsToListCheckSample.java +++ b/java-checks-test-sources/default/src/main/java/checks/CollectorsToListCheckSample.java @@ -119,6 +119,26 @@ void compliant() { .collect(Collectors.toList()); // Compliant, list5 needs to be mutable list5.removeIf(s -> true); + + List list6 = Stream.of("B", "C", "D") + .collect(Collectors.toList()); // Compliant, list6 needs to be mutable + + list6.addFirst("A"); + + List list7 = Stream.of("A", "B", "C") + .collect(Collectors.toList()); // Compliant, list7 needs to be mutable + + list7.addLast("D"); + + List list8 = Stream.of("A", "B", "C") + .collect(Collectors.toList()); // Compliant, list8 needs to be mutable + + list8.removeFirst(); + + List list9 = Stream.of("A", "B", "C") + .collect(Collectors.toList()); // Compliant, list9 needs to be mutable + + list9.removeLast(); } void addX() { diff --git a/java-checks/src/main/java/org/sonar/java/checks/CollectorsToListCheck.java b/java-checks/src/main/java/org/sonar/java/checks/CollectorsToListCheck.java index 4dfcb43ddb..e6c55758f0 100644 --- a/java-checks/src/main/java/org/sonar/java/checks/CollectorsToListCheck.java +++ b/java-checks/src/main/java/org/sonar/java/checks/CollectorsToListCheck.java @@ -58,7 +58,8 @@ public class CollectorsToListCheck extends AbstractMethodDetection implements Ja private static final MethodMatchers LIST_MODIFICATION_METHODS = MethodMatchers.create() .ofSubTypes("java.util.List") - .names("add", "addAll", "remove", "removeAll", "retainAll", "replaceAll", "set", "sort", "clear", "removeIf") + .names("add", "addAll", "remove", "removeAll", "retainAll", "replaceAll", "set", "sort", "clear", "removeIf", + "addFirst", "addLast", "removeFirst", "removeLast") .withAnyParameters() .build();