summaryrefslogtreecommitdiffstats
path: root/perl_checker.src/parser_helper.ml
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2003-08-11 02:11:29 +0000
committerPascal Rigaux <pixel@mandriva.com>2003-08-11 02:11:29 +0000
commitfaf98f9084397e55706fbea632d5dd9432d68f92 (patch)
tree3f18dd652def0ba88304258f2e1b5e0e706b1475 /perl_checker.src/parser_helper.ml
parentaff050c6ba86c87d9ce962e1b4cd7d4f71aeb245 (diff)
downloadperl_checker-faf98f9084397e55706fbea632d5dd9432d68f92.tar
perl_checker-faf98f9084397e55706fbea632d5dd9432d68f92.tar.gz
perl_checker-faf98f9084397e55706fbea632d5dd9432d68f92.tar.bz2
perl_checker-faf98f9084397e55706fbea632d5dd9432d68f92.tar.xz
perl_checker-faf98f9084397e55706fbea632d5dd9432d68f92.zip
- allow $_o_XXX parameter name which is both unused and optional (same for $_b_XXX)
- shift is a ONE_SCALAR_PARA so that $box->pack_start(shift @l, 0, 0, 4) is parsed correctly - in arrange_global_vars_declared(), don't keep anything in global_vars_declared, better create shadow packages to contain them - much better merging of multiple files defining functions in the same package. This fixes the bad behaviour when using the cache (esp. do_pkgs, but it was even worse with things in ugtk2.pm)
Diffstat (limited to 'perl_checker.src/parser_helper.ml')
-rw-r--r--perl_checker.src/parser_helper.ml7
1 files changed, 5 insertions, 2 deletions
diff --git a/perl_checker.src/parser_helper.ml b/perl_checker.src/parser_helper.ml
index bdf3d49..69627e6 100644
--- a/perl_checker.src/parser_helper.ml
+++ b/perl_checker.src/parser_helper.ml
@@ -835,8 +835,11 @@ let call_one_scalar_para { any = e ; pos = pos } para esp_start esp_end =
let para =
match para with
| [] ->
- if not (List.mem e [ "length" ]) then warn_rule (sprintf "please use \"%s $_\" instead of \"%s\"" e e) ;
- [var_dollar_ (raw_pos2pos pos)]
+ if e = "shift" then
+ [ Deref(I_array, Ident(None, "_", raw_pos2pos pos)) ]
+ else
+ (if not (List.mem e [ "length" ]) then warn_rule (sprintf "please use \"%s $_\" instead of \"%s\"" e e) ;
+ [var_dollar_ (raw_pos2pos pos)])
| _ -> para
in
new_pesp M_unknown P_mul (call(Deref(I_func, Ident(None, e, raw_pos2pos pos)), para)) esp_start esp_end