summaryrefslogtreecommitdiffstats
path: root/perl_checker.src/parser_helper.ml
diff options
context:
space:
mode:
Diffstat (limited to 'perl_checker.src/parser_helper.ml')
-rw-r--r--perl_checker.src/parser_helper.ml12
1 files changed, 12 insertions, 0 deletions
diff --git a/perl_checker.src/parser_helper.ml b/perl_checker.src/parser_helper.ml
index 7665eee..1f2a1c3 100644
--- a/perl_checker.src/parser_helper.ml
+++ b/perl_checker.src/parser_helper.ml
@@ -69,6 +69,7 @@ let is_always_false = function
| Num(n, _) -> float_of_string n = 0.
| Raw_string(s, _) -> s = ""
| String(l, _) -> l = []
+ | List [] -> true
| _ -> false
let not_complex e =
@@ -176,6 +177,9 @@ let rec prio_less = function
| _, P_tight_and -> true
| P_tight_and, _ -> false
+ | P_bit, P_bit -> true
+ | P_bit, _ -> false
+
| _, P_expr -> true
| P_expr, _ -> false
@@ -336,6 +340,14 @@ let check_scalar_subscripted (e, _) =
| Deref(I_scalar, Deref _) -> warn_rule "for complex dereferencing, use \"->\""
| _ -> ()
+let check_negatable_expr ((_, e), _) =
+ match un_parenthesize_full e with
+ | Call_op("m//", var :: _, _) when not (is_var_dollar_ var) ->
+ warn_rule "!($var =~ /.../) is better written $var !~ /.../"
+ | Call_op("!m//", var :: _, _) when not (is_var_dollar_ var) ->
+ warn_rule "!($var !~ /.../) is better written $var =~ /.../"
+ | _ -> ()
+
let check_ternary_paras(cond, a, b) =
let rec dont_need_short_circuit_rec = function
| Num _