diff options
author | Alain Frisch <alain@frisch.fr> | 2013-04-17 09:46:52 +0000 |
---|---|---|
committer | Alain Frisch <alain@frisch.fr> | 2013-04-17 09:46:52 +0000 |
commit | b36ec9f7644410df981d954aae686eaf3f59a590 (patch) | |
tree | ede621009ff1bd6fb99b93b658e49705a0310229 /camlp4 | |
parent | 501dfd2b5e2425b2b40afe5ce9782503e68f8e22 (diff) |
Get rid of the 'explicit arity' flag on Pexp_construct/Ppat_construct. If really requires (for camlp5?), the feature should be reimplemented with attributes.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13549 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'camlp4')
-rw-r--r-- | camlp4/Camlp4/Struct/Camlp4Ast2OCamlAst.ml | 39 | ||||
-rw-r--r-- | camlp4/boot/Camlp4.ml | 63 |
2 files changed, 30 insertions, 72 deletions
diff --git a/camlp4/Camlp4/Struct/Camlp4Ast2OCamlAst.ml b/camlp4/Camlp4/Struct/Camlp4Ast2OCamlAst.ml index c39f226e0..d405a3760 100644 --- a/camlp4/Camlp4/Struct/Camlp4Ast2OCamlAst.ml +++ b/camlp4/Camlp4/Struct/Camlp4Ast2OCamlAst.ml @@ -27,10 +27,6 @@ module Make (Ast : Sig.Camlp4Ast) = struct open Camlp4_import.Asttypes; open Ast; - value constructors_arity () = - debug ast2pt "constructors_arity: %b@." Camlp4_config.constructors_arity.val in - Camlp4_config.constructors_arity.val; - value error loc str = Loc.raise loc (Failure str); value char_of_char_token loc s = @@ -504,8 +500,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct [ <:patt@loc< $id:(<:ident@sloc< $lid:s$ >>)$ >> -> mkpat loc (Ppat_var (with_loc s sloc)) | <:patt@loc< $id:i$ >> -> - let p = Ppat_construct (long_uident ~conv_con i) - None (constructors_arity ()) + let p = Ppat_construct (long_uident ~conv_con i) None in mkpat loc p | PaAli loc p1 p2 -> let (p, i) = @@ -519,26 +514,20 @@ module Make (Ast : Sig.Camlp4Ast) = struct | PaAny loc -> mkpat loc Ppat_any | <:patt@loc< $id:(<:ident@sloc< $uid:s$ >>)$ ($tup:<:patt@loc_any< _ >>$) >> -> mkpat loc (Ppat_construct (lident_with_loc (conv_con s) sloc) - (Some (mkpat loc_any Ppat_any)) False) + (Some (mkpat loc_any Ppat_any))) | PaApp loc _ _ as f -> let (f, al) = patt_fa [] f in let al = List.map patt al in match (patt f).ppat_desc with - [ Ppat_construct li None _ -> - if constructors_arity () then - mkpat loc (Ppat_construct li (Some (mkpat loc (Ppat_tuple al))) True) - else + [ Ppat_construct li None -> let a = match al with [ [a] -> a | _ -> mkpat loc (Ppat_tuple al) ] in - mkpat loc (Ppat_construct li (Some a) False) + mkpat loc (Ppat_construct li (Some a)) | Ppat_variant s None -> let a = - if constructors_arity () then - mkpat loc (Ppat_tuple al) - else match al with [ [a] -> a | _ -> mkpat loc (Ppat_tuple al) ] @@ -695,8 +684,7 @@ value varify_constructors var_names = let (e, l) = match sep_expr_acc [] e with [ [(loc, ml, <:expr@sloc< $uid:s$ >>) :: l] -> - let ca = constructors_arity () in - (mkexp loc (Pexp_construct (mkli sloc (conv_con s) ml) None ca), l) + (mkexp loc (Pexp_construct (mkli sloc (conv_con s) ml) None), l) | [(loc, ml, <:expr@sloc< $lid:s$ >>) :: l] -> (mkexp loc (Pexp_ident (mkli sloc s ml)), l) | [(_, [], e) :: l] -> (expr e, l) @@ -718,23 +706,17 @@ value varify_constructors var_names = let (f, al) = expr_fa [] f in let al = List.map label_expr al in match (expr f).pexp_desc with - [ Pexp_construct li None _ -> + [ Pexp_construct li None -> let al = List.map snd al in - if constructors_arity () then - mkexp loc (Pexp_construct li (Some (mkexp loc (Pexp_tuple al))) True) - else let a = match al with [ [a] -> a | _ -> mkexp loc (Pexp_tuple al) ] in - mkexp loc (Pexp_construct li (Some a) False) + mkexp loc (Pexp_construct li (Some a)) | Pexp_variant s None -> let al = List.map snd al in let a = - if constructors_arity () then - mkexp loc (Pexp_tuple al) - else match al with [ [a] -> a | _ -> mkexp loc (Pexp_tuple al) ] @@ -746,7 +728,7 @@ value varify_constructors var_names = [("", expr e1); ("", expr e2)]) | ExArr loc e -> mkexp loc (Pexp_array (List.map expr (list_of_expr e []))) | ExAsf loc -> - mkexp loc (Pexp_assert (mkexp loc (Pexp_construct {txt=Lident "false"; loc=mkloc loc} None false))) + mkexp loc (Pexp_assert (mkexp loc (Pexp_construct {txt=Lident "false"; loc=mkloc loc} None))) | ExAss loc e v -> let e = match e with @@ -861,12 +843,11 @@ value varify_constructors var_names = | <:expr@loc< ($tup:_$) >> -> error loc "singleton tuple" | ExTyc loc e t -> mkexp loc (Pexp_constraint (expr e) (Some (ctyp t)) None) | <:expr@loc< () >> -> - mkexp loc (Pexp_construct (lident_with_loc "()" loc) None True) + mkexp loc (Pexp_construct (lident_with_loc "()" loc) None) | <:expr@loc< $lid:s$ >> -> mkexp loc (Pexp_ident (lident_with_loc s loc)) | <:expr@loc< $uid:s$ >> -> - (* let ca = constructors_arity () in *) - mkexp loc (Pexp_construct (lident_with_loc (conv_con s) loc) None True) + mkexp loc (Pexp_construct (lident_with_loc (conv_con s) loc) None) | ExVrn loc s -> mkexp loc (Pexp_variant (conv_con s) None) | ExWhi loc e1 el -> let e2 = ExSeq loc el in diff --git a/camlp4/boot/Camlp4.ml b/camlp4/boot/Camlp4.ml index 23c86ffd4..9a3c2f6af 100644 --- a/camlp4/boot/Camlp4.ml +++ b/camlp4/boot/Camlp4.ml @@ -14139,8 +14139,6 @@ module Struct = open Ast - let constructors_arity () = !Camlp4_config.constructors_arity - let error loc str = Loc.raise loc (Failure str) let char_of_char_token loc s = @@ -14690,8 +14688,7 @@ module Struct = mkpat loc (Ppat_var (with_loc s sloc)) | Ast.PaId (loc, i) -> let p = - Ppat_construct ((long_uident ~conv_con i), None, - (constructors_arity ())) + Ppat_construct ((long_uident ~conv_con i), None) in mkpat loc p | PaAli (loc, p1, p2) -> let (p, i) = @@ -14708,34 +14705,25 @@ module Struct = (Ast.PaTup (_, (Ast.PaAny loc_any)))) -> mkpat loc (Ppat_construct ((lident_with_loc (conv_con s) sloc), - (Some (mkpat loc_any Ppat_any)), false)) + (Some (mkpat loc_any Ppat_any)))) | (PaApp (loc, _, _) as f) -> let (f, al) = patt_fa [] f in let al = List.map patt al in (match (patt f).ppat_desc with - | Ppat_construct (li, None, _) -> - if constructors_arity () - then - mkpat loc - (Ppat_construct (li, - (Some (mkpat loc (Ppat_tuple al))), true)) - else - (let a = + | Ppat_construct (li, None) -> + let a = match al with | [ a ] -> a | _ -> mkpat loc (Ppat_tuple al) - in + in mkpat loc - (Ppat_construct (li, (Some a), false))) + (Ppat_construct (li, (Some a))) | Ppat_variant (s, None) -> let a = - if constructors_arity () - then mkpat loc (Ppat_tuple al) - else - (match al with - | [ a ] -> a - | _ -> mkpat loc (Ppat_tuple al)) + match al with + | [ a ] -> a + | _ -> mkpat loc (Ppat_tuple al) in mkpat loc (Ppat_variant (s, (Some a))) | _ -> error (loc_of_patt f) @@ -14918,11 +14906,9 @@ module Struct = let (e, l) = (match sep_expr_acc [] e with | (loc, ml, Ast.ExId (sloc, (Ast.IdUid (_, s)))) :: l -> - let ca = constructors_arity () - in ((mkexp loc (Pexp_construct ((mkli sloc (conv_con s) ml), - None, ca))), + None))), l) | (loc, ml, Ast.ExId (sloc, (Ast.IdLid (_, s)))) :: l -> ((mkexp loc (Pexp_ident (mkli sloc s ml))), l) @@ -14950,31 +14936,22 @@ module Struct = let al = List.map label_expr al in (match (expr f).pexp_desc with - | Pexp_construct (li, None, _) -> + | Pexp_construct (li, None) -> let al = List.map snd al in - if constructors_arity () - then - mkexp loc - (Pexp_construct (li, - (Some (mkexp loc (Pexp_tuple al))), true)) - else - (let a = + let a = match al with | [ a ] -> a | _ -> mkexp loc (Pexp_tuple al) - in + in mkexp loc - (Pexp_construct (li, (Some a), false))) + (Pexp_construct (li, (Some a))) | Pexp_variant (s, None) -> let al = List.map snd al in let a = - if constructors_arity () - then mkexp loc (Pexp_tuple al) - else - (match al with - | [ a ] -> a - | _ -> mkexp loc (Pexp_tuple al)) + match al with + | [ a ] -> a + | _ -> mkexp loc (Pexp_tuple al) in mkexp loc (Pexp_variant (s, (Some a))) | _ -> mkexp loc (Pexp_apply ((expr f), al))) | ExAre (loc, e1, e2) -> @@ -14985,7 +14962,7 @@ module Struct = [ ("", (expr e1)); ("", (expr e2)) ])) | ExArr (loc, e) -> mkexp loc (Pexp_array (List.map expr (list_of_expr e []))) - | ExAsf loc -> mkexp loc (Pexp_assert (mkexp loc (Pexp_construct ({txt=Lident "false"; loc=mkloc loc}, None, false)))) + | ExAsf loc -> mkexp loc (Pexp_assert (mkexp loc (Pexp_construct ({txt=Lident "false"; loc=mkloc loc}, None)))) | ExAss (loc, e, v) -> let e = (match e with @@ -15155,13 +15132,13 @@ module Struct = (Pexp_constraint ((expr e), (Some (ctyp t)), None)) | Ast.ExId (loc, (Ast.IdUid (_, "()"))) -> mkexp loc - (Pexp_construct ((lident_with_loc "()" loc), None, true)) + (Pexp_construct ((lident_with_loc "()" loc), None)) | Ast.ExId (loc, (Ast.IdLid (_, s))) -> mkexp loc (Pexp_ident (lident_with_loc s loc)) | Ast.ExId (loc, (Ast.IdUid (_, s))) -> mkexp loc (Pexp_construct ((lident_with_loc (conv_con s) loc), - None, true)) + None)) | ExVrn (loc, s) -> mkexp loc (Pexp_variant ((conv_con s), None)) | ExWhi (loc, e1, el) -> |