diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2002-12-04 22:11:57 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2002-12-04 22:11:57 +0000 |
commit | d1609de77aeb01a784950d707354770bde196782 (patch) | |
tree | 9c271c0769fe413ab89baeea491783d26fe67293 /perl_checker.src/tree.ml | |
parent | 1310c8fe02524b095663ca7c79bd803747e6754b (diff) | |
download | perl_checker-d1609de77aeb01a784950d707354770bde196782.tar perl_checker-d1609de77aeb01a784950d707354770bde196782.tar.gz perl_checker-d1609de77aeb01a784950d707354770bde196782.tar.bz2 perl_checker-d1609de77aeb01a784950d707354770bde196782.tar.xz perl_checker-d1609de77aeb01a784950d707354770bde196782.zip |
handle "use lib qw(...)"
Diffstat (limited to 'perl_checker.src/tree.ml')
-rw-r--r-- | perl_checker.src/tree.ml | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/perl_checker.src/tree.ml b/perl_checker.src/tree.ml index ee1a4ce..bc72db8 100644 --- a/perl_checker.src/tree.ml +++ b/perl_checker.src/tree.ml @@ -43,6 +43,7 @@ let anonymous_package_count = ref 0 let default_state = { per_package = []; files_parsed = []; global_vars_declared = Hashtbl.create 256; global_vars_used = ref [] } let empty_exports = { export_ok = []; export_auto = []; export_tags = []; special_export = None } let ignored_packages = ref [] +let use_lib = ref [] let die_with_pos pos msg = failwith (Info.pos2sfull pos ^ msg) let warn_with_pos pos msg = prerr_endline (Info.pos2sfull pos ^ msg) @@ -146,13 +147,16 @@ let get_exported t = ) empty_exports t let uses_external_package = function - | "vars" | "MDK::Common::Globals" | "Exporter" | "diagnostics" | "strict" | "lib" | "POSIX" + | "vars" | "MDK::Common::Globals" | "Exporter" | "diagnostics" | "strict" | "lib" | "POSIX" | "Gtk" | "Gtk2" | "Config" | "Socket" | "Net::FTP" | "IO::Socket" | "DynaLoader" | "Data::Dumper" -> true | _ -> false let get_uses t = List.fold_left (fun uses e -> match e with + | Use(Ident(None, "lib", _), [libs]) -> + use_lib := List.map snd (from_qw libs) @ !use_lib ; + uses | Use(Ident _ as pkg, _) when uses_external_package (string_of_Ident pkg) -> uses | Use(Ident(_, _, pos) as ident, l) -> let package = string_of_Ident ident in |