summaryrefslogtreecommitdiff
path: root/tools/depend.ml
diff options
context:
space:
mode:
authorPierre Weis <Pierre.Weis@inria.fr>2009-12-23 18:46:52 +0000
committerPierre Weis <Pierre.Weis@inria.fr>2009-12-23 18:46:52 +0000
commited43cd4bd25a6465ec5bd0a67be184952cc37bf1 (patch)
treef36b323eb49d7180ef56c1daa2b699e41e2276e9 /tools/depend.ml
parent57cc3000e652f833de7c3dd44bbe88900a8b3989 (diff)
downloadocaml-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.ml30
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