diff options
-rw-r--r-- | perl_checker.src/parser_helper.ml | 4 | ||||
-rw-r--r-- | perl_checker.src/test/suggest_better.t | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/perl_checker.src/parser_helper.ml b/perl_checker.src/parser_helper.ml index 727f956..42e14a9 100644 --- a/perl_checker.src/parser_helper.ml +++ b/perl_checker.src/parser_helper.ml @@ -683,6 +683,10 @@ let cook_call_op op para pos = if Info.is_on_same_line_current pos then warn pos "no need to initialize variables, it's done by default" ; call + | "=", [ Deref_with(I_array, I_scalar, id, Deref(I_array, id_)); _ ] when is_same_fromparser id id_ -> + warn_rule "\"$a[@a] = ...\" is better written \"push @a, ...\"" ; + call + | "=", [ Deref(I_star, String ([(sf1, List [])], _)); _ ] -> warn_rule (sprintf "write *{'%s'} instead of *{\"%s\"}" sf1 sf1) ; call diff --git a/perl_checker.src/test/suggest_better.t b/perl_checker.src/test/suggest_better.t index caa3677..247fe6c 100644 --- a/perl_checker.src/test/suggest_better.t +++ b/perl_checker.src/test/suggest_better.t @@ -56,6 +56,8 @@ $l[$#l] you can replace $#l with -1 $#l == 0 $#x == 0 is better written @x == 1 +$l[@l] = 1 "$a[@a] = ..." is better written "push @a, ..." + xxx(@_) replace xxx(@_) with &xxx member($xxx, keys %h) you can replace "member($xxx, keys %yyy)" with "exists $yyy{$xxx}" |