summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2009-12-03 16:05:49 +0000
committerDamien Doligez <damien.doligez-inria.fr>2009-12-03 16:05:49 +0000
commit33c9311355e9f1343fb683d535587374d35f1d52 (patch)
treea784c31909916f02ef1a6c3925b0829b3eb959fc
parentf2734e23cd78d36f1bedc9bbb3791e28e6cf5805 (diff)
downloadocaml-33c9311355e9f1343fb683d535587374d35f1d52.tar.gz
update addlabels for new language constructs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9439 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--tools/Makefile.shared4
-rw-r--r--tools/addlabels.ml17
2 files changed, 11 insertions, 10 deletions
diff --git a/tools/Makefile.shared b/tools/Makefile.shared
index aa8aba5f70..96e09e1f90 100644
--- a/tools/Makefile.shared
+++ b/tools/Makefile.shared
@@ -166,9 +166,9 @@ ADDLABELS_IMPORTS=misc.cmo config.cmo clflags.cmo terminfo.cmo \
linenum.cmo warnings.cmo location.cmo longident.cmo \
syntaxerr.cmo parser.cmo lexer.cmo parse.cmo
-addlabels: addlabels.ml
+addlabels: addlabels.cmo
$(CAMLC) $(LINKFLAGS) -w sl -o addlabels \
- $(ADDLABELS_IMPORTS) addlabels.ml
+ $(ADDLABELS_IMPORTS) addlabels.cmo
install::
cp addlabels $(LIBDIR)
diff --git a/tools/addlabels.ml b/tools/addlabels.ml
index 4eda3b0c69..270a4d6109 100644
--- a/tools/addlabels.ml
+++ b/tools/addlabels.ml
@@ -258,7 +258,9 @@ let rec add_labels_expr ~text ~values ~classes expr =
| Pexp_letmodule (_, _, e)
| Pexp_assert e
| Pexp_lazy e
- | Pexp_poly (e, _) ->
+ | Pexp_poly (e, _)
+ | Pexp_newtype (_, e)
+ | Pexp_open (_, e) ->
add_labels_rec e
| Pexp_record (lst, opt) ->
List.iter lst ~f:(fun (_,e) -> add_labels_rec e);
@@ -277,7 +279,7 @@ let rec add_labels_expr ~text ~values ~classes expr =
| Pexp_override lst ->
List.iter lst ~f:(fun (_,e) -> add_labels_rec e)
| Pexp_ident _ | Pexp_constant _ | Pexp_construct _ | Pexp_variant _
- | Pexp_new _ | Pexp_assertfalse | Pexp_object _ ->
+ | Pexp_new _ | Pexp_assertfalse | Pexp_object _ | Pexp_pack _ ->
()
let rec add_labels_class ~text ~classes ~values ~methods cl =
@@ -292,7 +294,7 @@ let rec add_labels_class ~text ~classes ~values ~methods cl =
~init:(SMap.add s ["<object>"] values)
~f:(fun m (k,l) -> SMap.add (s^"#"^k) l m)
in
- List.fold_left l ~init:values ~f:
+ ignore (List.fold_left l ~init:values ~f:
begin fun values -> function
| Pcf_val (s, _, e, _) ->
add_labels_expr ~text ~classes ~values e;
@@ -310,8 +312,7 @@ let rec add_labels_class ~text ~classes ~values ~methods cl =
values
| Pcf_inher _ | Pcf_valvirt _ | Pcf_virt _ | Pcf_cstr _ -> values
| Pcf_let _ -> values (* not in the grammar *)
- end;
- ()
+ end)
| Pcl_fun (_, opt, pat, cl) ->
begin match opt with None -> ()
| Some e -> add_labels_expr ~text ~classes ~values e
@@ -319,7 +320,7 @@ let rec add_labels_class ~text ~classes ~values ~methods cl =
let values = SMap.removes (pattern_vars pat) values in
add_labels_class ~text ~classes ~values ~methods cl
| Pcl_apply (cl, args) ->
- List.map args ~f:(fun (_,e) -> add_labels_expr ~text ~classes ~values e);
+ List.iter args ~f:(fun (_,e) -> add_labels_expr ~text ~classes ~values e);
add_labels_class ~text ~classes ~values ~methods cl
| Pcl_let (recp, lst, cl) ->
let vars = List.concat (List.map lst ~f:(fun (p,_) -> pattern_vars p)) in
@@ -352,7 +353,7 @@ let add_labels ~intf ~impl ~file =
end
in
let text = input_file file in
- List.fold_right impl ~init:(values, classes) ~f:
+ ignore (List.fold_right impl ~init:(values, classes) ~f:
begin fun item (values, classes as acc) ->
match item.pstr_desc with
Pstr_value (recp, l) ->
@@ -405,7 +406,7 @@ let add_labels ~intf ~impl ~file =
(values, SMap.removes names classes)
| _ ->
acc
- end;
+ end);
if !insertions <> [] then begin
let backup = file ^ ".bak" in
if Sys.file_exists backup then Sys.remove file