postgres.git / summary / log / commit / refs

commit    bb466c6b0992a1a21c03239a7b0a87ebadd3bee1
Author:   Daniel Gustafsson <dgustafsson@postgresql.org>
Date:     Tue Aug 31 09:07:04 2021 +0000

    Prohibit map and grep in void context
    
    map and grep are not intended to be used as mutators, iterating
    with side-effects should be done with for or foreach loops. This
    fixes the one occurrence of the pattern, and bumps the perlcritic
    policy to severity 5 for the map and grep policies.
    
    Author: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
    Reviewed-by: Michael Paquier <michael@paquier.xyz>
    Reviewed-by: Andrew Dunstan <andrew@dunslane.net>
    Reviewed-by: Julien Rouhaud <rjuju123@gmail.com>
    Discussion: https://postgr.es/m/87fsvzhhc4.fsf@wibble.ilmari.org


contrib/intarray/bench/create_test.pl | 2 +- src/tools/perlcheck/perlcriticrc | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/contrib/intarray/bench/create_test.pl b/contrib/intarray/bench/create_test.pl index 993a4572f41..ae8d72bab03 100755 --- a/contrib/intarray/bench/create_test.pl +++ b/contrib/intarray/bench/create_test.pl @@ -51,7 +51,7 @@ foreach my $i (1 .. 200000) else { print $msg "$i\t{" . join(',', @sect) . "}\n"; - map { print $map "$i\t$_\n" } @sect; + print $map "$i\t$_\n" foreach @sect; } } close $map; diff --git a/src/tools/perlcheck/perlcriticrc b/src/tools/perlcheck/perlcriticrc index e230111b232..9267fb43b27 100644 --- a/src/tools/perlcheck/perlcriticrc +++ b/src/tools/perlcheck/perlcriticrc @@ -22,3 +22,10 @@ verbose = %f: %m at line %l, column %c. %e. ([%p] Severity: %s)\n # insist on use of the warnings pragma [TestingAndDebugging::RequireUseWarnings] severity = 5 + +# forbid grep and map in void context +[BuiltinFunctions::ProhibitVoidGrep] +severity = 5 + +[BuiltinFunctions::ProhibitVoidMap] +severity = 5 [parent: f2bbadce6b50]