summaryrefslogtreecommitdiff
path: root/typing/oprint.ml
diff options
context:
space:
mode:
authorAlain Frisch <alain@frisch.fr>2014-04-07 12:42:49 +0000
committerAlain Frisch <alain@frisch.fr>2014-04-07 12:42:49 +0000
commitd416414ccd27799497d44707b3a4401d3d54ffd4 (patch)
tree2fa8ae3297e1e669f7ef9b47260b6ad9f4f42f6a /typing/oprint.ml
parentfa13304327539422b5d7a43ec55349abceaee5b7 (diff)
downloadocaml-d416414ccd27799497d44707b3a4401d3d54ffd4.tar.gz
Adapt printer.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14548 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'typing/oprint.ml')
-rw-r--r--typing/oprint.ml18
1 files changed, 10 insertions, 8 deletions
diff --git a/typing/oprint.ml b/typing/oprint.ml
index 47a0c04a52..8084dff06a 100644
--- a/typing/oprint.ml
+++ b/typing/oprint.ml
@@ -223,7 +223,8 @@ and print_simple_out_type ppf =
print_out_type ppf ty;
pp_print_char ppf ')';
pp_close_box ppf ()
- | Otyp_abstract | Otyp_sum _ | Otyp_record _ | Otyp_manifest (_, _) -> ()
+ | Otyp_abstract | Otyp_sum _ | Otyp_manifest (_, _) -> ()
+ | Otyp_record lbls -> print_record_decl ppf lbls
| Otyp_module (p, n, tyl) ->
fprintf ppf "@[<1>(module %s" p;
let first = ref true in
@@ -234,6 +235,9 @@ and print_simple_out_type ppf =
)
n tyl;
fprintf ppf ")@]"
+and print_record_decl ppf lbls =
+ fprintf ppf "{%a@;<1 -2>}"
+ (print_list_init print_out_label (fun ppf -> fprintf ppf "@ ")) lbls
and print_fields rest ppf =
function
[] ->
@@ -278,6 +282,9 @@ and print_typargs ppf =
pp_print_char ppf ')';
pp_close_box ppf ();
pp_print_space ppf ()
+and print_out_label ppf (name, mut, arg) =
+ fprintf ppf "@[<2>%s%s :@ %a@];" (if mut then "mutable " else "") name
+ print_out_type arg
let out_type = ref print_out_type
@@ -441,9 +448,9 @@ and print_out_type_decl kwd ppf (name, args, ty, priv, constraints) =
let print_out_tkind ppf = function
| Otyp_abstract -> ()
| Otyp_record lbls ->
- fprintf ppf " =%a {%a@;<1 -2>}"
+ fprintf ppf " =%a %a"
print_private priv
- (print_list_init print_out_label (fun ppf -> fprintf ppf "@ ")) lbls
+ print_record_decl lbls
| Otyp_sum constrs ->
fprintf ppf " =%a@;<1 2>%a"
print_private priv
@@ -477,11 +484,6 @@ and print_out_constr ppf (name, tyl,ret_type_opt) =
tyl print_simple_out_type ret_type
end
-
-and print_out_label ppf (name, mut, arg) =
- fprintf ppf "@[<2>%s%s :@ %a@];" (if mut then "mutable " else "") name
- !out_type arg
-
let _ = out_module_type := print_out_module_type
let _ = out_signature := print_out_signature
let _ = out_sig_item := print_out_sig_item