diff options
Diffstat (limited to 'ocamldoc/odoc_man.ml')
-rw-r--r-- | ocamldoc/odoc_man.ml | 47 |
1 files changed, 27 insertions, 20 deletions
diff --git a/ocamldoc/odoc_man.ml b/ocamldoc/odoc_man.ml index e97db4bc5..13733ba8e 100644 --- a/ocamldoc/odoc_man.ml +++ b/ocamldoc/odoc_man.ml @@ -383,8 +383,14 @@ class man = bs b "\n" (** Print groff string to display a [Types.type_expr list].*) - method man_of_type_expr_list ?par b m_name sep l = - let s = Odoc_str.string_of_type_list ?par sep l in + method man_of_cstr_args ?par b m_name sep l = + let s = + match l with + | Cstr_tuple l -> + Odoc_str.string_of_type_list ?par sep l + | Cstr_record l -> + Odoc_str.string_of_record l + in let s2 = Str.global_replace (Str.regexp "\n") "\n.B " s in bs b "\n.B "; bs b (self#relative_idents m_name s2); @@ -448,16 +454,16 @@ class man = bs b ("| "^(Name.simple x.xt_name)); ( match x.xt_args, x.xt_ret with - | [], None -> bs b "\n" + | Cstr_tuple [], None -> bs b "\n" | l, None -> bs b "\n.B of "; - self#man_of_type_expr_list ~par: false b father " * " l; - | [], Some r -> + self#man_of_cstr_args ~par: false b father " * " l; + | Cstr_tuple [], Some r -> bs b "\n.B : "; self#man_of_type_expr b father r; | l, Some r -> bs b "\n.B : "; - self#man_of_type_expr_list ~par: false b father " * " l; + self#man_of_cstr_args ~par: false b father " * " l; bs b ".B -> "; self#man_of_type_expr b father r; ); @@ -498,18 +504,18 @@ class man = bs b " \n"; ( match e.ex_args, e.ex_ret with - | [], None -> () + | Cstr_tuple [], None -> () | l, None -> bs b ".B of "; - self#man_of_type_expr_list + self#man_of_cstr_args ~par: false b (Name.father e.ex_name) " * " e.ex_args - | [], Some r -> + | Cstr_tuple [], Some r -> bs b ".B : "; self#man_of_type_expr b (Name.father e.ex_name) r | l, Some r -> bs b ".B : "; - self#man_of_type_expr_list + self#man_of_cstr_args ~par: false b (Name.father e.ex_name) " * " l; bs b ".B -> "; @@ -586,36 +592,36 @@ class man = bs b " *)\n " in match constr.vc_args, constr.vc_text,constr.vc_ret with - | [], None, None -> bs b "\n " - | [], (Some t), None -> + | Cstr_tuple [], None, None -> bs b "\n " + | Cstr_tuple [], (Some t), None -> print_text t | l, None, None -> bs b "\n.B of "; - self#man_of_type_expr_list ~par: false b father " * " l; + self#man_of_cstr_args ~par: false b father " * " l; bs b " " | l, (Some t), None -> bs b "\n.B of "; - self#man_of_type_expr_list ~par: false b father " * " l; + self#man_of_cstr_args ~par: false b father " * " l; bs b ".I \" \"\n"; print_text t - | [], None, Some r -> + | Cstr_tuple [], None, Some r -> bs b "\n.B : "; self#man_of_type_expr b father r; bs b " " - | [], (Some t), Some r -> + | Cstr_tuple [], (Some t), Some r -> bs b "\n.B : "; self#man_of_type_expr b father r; bs b ".I \" \"\n"; print_text t | l, None, Some r -> bs b "\n.B : "; - self#man_of_type_expr_list ~par: false b father " * " l; + self#man_of_cstr_args ~par: false b father " * " l; bs b ".B -> "; self#man_of_type_expr b father r; bs b " " | l, (Some t), Some r -> bs b "\n.B of "; - self#man_of_type_expr_list ~par: false b father " * " l; + self#man_of_cstr_args ~par: false b father " * " l; bs b ".B -> "; self#man_of_type_expr b father r; bs b ".I \" \"\n"; @@ -822,8 +828,8 @@ class man = bs b ".I "; bs b (c.vc_name^" "); (match c.vc_args with - [] -> () - | h::q -> + | Cstr_tuple [] -> () + | Cstr_tuple (h::q) -> bs b "of "; self#man_of_type_expr b modname h; List.iter @@ -831,6 +837,7 @@ class man = bs b " * "; self#man_of_type_expr b modname ty) q + | Cstr_record _ -> bs b "{ ... }" ); bs b "\n.sp\n"; self#man_of_info b c.vc_text; |