diff options
author | Pierre Weis <Pierre.Weis@inria.fr> | 2009-12-23 18:46:52 +0000 |
---|---|---|
committer | Pierre Weis <Pierre.Weis@inria.fr> | 2009-12-23 18:46:52 +0000 |
commit | ed43cd4bd25a6465ec5bd0a67be184952cc37bf1 (patch) | |
tree | f36b323eb49d7180ef56c1daa2b699e41e2276e9 /tools/depend.ml | |
parent | 57cc3000e652f833de7c3dd44bbe88900a8b3989 (diff) | |
download | ocaml-ed43cd4bd25a6465ec5bd0a67be184952cc37bf1.tar.gz |
Bootstrap succeded :)
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/dothat@9488 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'tools/depend.ml')
-rw-r--r-- | tools/depend.ml | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/tools/depend.ml b/tools/depend.ml index 4d24070adb..0aaded2846 100644 --- a/tools/depend.ml +++ b/tools/depend.ml @@ -15,6 +15,7 @@ open Format open Location open Longident +open Reftypes open Parsetree module StringSet = Set.Make(struct type t = string let compare = compare end) @@ -33,9 +34,21 @@ let rec addmodule bv lid = let add bv lid = match lid with - Ldot(l, s) -> addmodule bv l + Ldot (l, _s) -> addmodule bv l | _ -> () +let add_lref bv lref = + match lref with + | Reftypes.Plabel _lid -> () + | Reftypes.Plabel_ty (lid, _s) -> add bv lid +;; + +let add_cref bv cref = + match cref with + | Reftypes.Pconstr _lid -> () + | Reftypes.Pconstr_ty (lid, _s) -> add bv lid +;; + let rec add_type bv ty = match ty.ptyp_desc with Ptyp_any -> () @@ -105,9 +118,10 @@ let rec add_pattern bv pat = | Ppat_alias(p, _) -> add_pattern bv p | Ppat_constant _ -> () | Ppat_tuple pl -> List.iter (add_pattern bv) pl - | Ppat_construct(c, op, _) -> add bv c; add_opt add_pattern bv op + | Ppat_construct(cref, op, _) -> + add_cref bv cref; add_opt add_pattern bv op | Ppat_record(pl, _) -> - List.iter (fun (lbl, p) -> add bv lbl; add_pattern bv p) pl + List.iter (fun (lref, p) -> add_lref bv lref; add_pattern bv p) pl | Ppat_array pl -> List.iter (add_pattern bv) pl | Ppat_or(p1, p2) -> add_pattern bv p1; add_pattern bv p2 | Ppat_constraint(p, ty) -> add_pattern bv p; add_type bv ty @@ -127,13 +141,15 @@ let rec add_expr bv exp = | Pexp_match(e, pel) -> add_expr bv e; add_pat_expr_list bv pel | Pexp_try(e, pel) -> add_expr bv e; add_pat_expr_list bv pel | Pexp_tuple el -> List.iter (add_expr bv) el - | Pexp_construct(c, opte, _) -> add bv c; add_opt add_expr bv opte + | Pexp_construct(cref, opte, _) -> + add_cref bv cref; add_opt add_expr bv opte | Pexp_variant(_, opte) -> add_opt add_expr bv opte | Pexp_record(lblel, opte) -> - List.iter (fun (lbl, e) -> add bv lbl; add_expr bv e) lblel; + List.iter (fun (lref, e) -> add_lref bv lref; add_expr bv e) lblel; add_opt add_expr bv opte - | Pexp_field(e, fld) -> add_expr bv e; add bv fld - | Pexp_setfield(e1, fld, e2) -> add_expr bv e1; add bv fld; add_expr bv e2 + | Pexp_field(e, lref) -> add_expr bv e; add_lref bv lref + | Pexp_setfield(e1, lref, e2) -> + add_expr bv e1; add_lref bv lref; add_expr bv e2 | Pexp_array el -> List.iter (add_expr bv) el | Pexp_ifthenelse(e1, e2, opte3) -> add_expr bv e1; add_expr bv e2; add_opt add_expr bv opte3 |