summaryrefslogtreecommitdiffstats
path: root/camlp4
diff options
context:
space:
mode:
authorAlain Frisch <alain@frisch.fr>2013-04-17 09:46:52 +0000
committerAlain Frisch <alain@frisch.fr>2013-04-17 09:46:52 +0000
commitb36ec9f7644410df981d954aae686eaf3f59a590 (patch)
treeede621009ff1bd6fb99b93b658e49705a0310229 /camlp4
parent501dfd2b5e2425b2b40afe5ce9782503e68f8e22 (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.ml39
-rw-r--r--camlp4/boot/Camlp4.ml63
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) ->