diff --git a/CHANGES.md b/CHANGES.md index 4db107788a..1a9ed1fd0d 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,9 @@ ### Added +- Addded `--suppress-warnings` to the CLI to remove warnings from a unit, even + if they end up being raised in another unit through expansion (@jonludlam, + #1260) - Improve jump to implementation in rendered source code, and add a `count-occurrences` flag and command to count occurrences of every identifiers (@panglesd, #976) diff --git a/doc/examples/resolution.mli b/doc/examples/resolution.mli index 06b30790cb..d0c6d0bc39 100644 --- a/doc/examples/resolution.mli +++ b/doc/examples/resolution.mli @@ -85,8 +85,6 @@ module Hidden : sig (**/**) type v = T of t - - type w = U of u end module References : sig diff --git a/doc/odoc.mld b/doc/odoc.mld index b900b605fa..a4db08d1c5 100644 --- a/doc/odoc.mld +++ b/doc/odoc.mld @@ -58,6 +58,4 @@ The main other pages of this site: - {!page-ocamldoc_differences} outlines differences from OCamldoc. - {!page-dune} shows how to create docs using Dune. - {!page-parent_child_spec} delineates parent/child specifications. -- {!page-interface} describes [odoc]'s public-facing interface and their support guarantees. -- {!page-ocamlary} demonstrates the rendering of most of the OCaml constructs. -- {!page-api_reference} lists [odoc]'s API reference library. +- {!page-interface} describes [odoc]'s public-facing interface and their support guarantees. \ No newline at end of file diff --git a/dune b/dune index 3a7000ca50..7622449207 100644 --- a/dune +++ b/dune @@ -23,3 +23,8 @@ (progn (bash "diff doc/driver.mld doc/driver.mld.corrected >&2 || true") (cat doc/driver-benchmarks.json)))) + +(install + (files odoc-config.sexp) + (section doc) + (package odoc)) diff --git a/odoc-config.sexp b/odoc-config.sexp new file mode 100644 index 0000000000..c6b2ea188f --- /dev/null +++ b/odoc-config.sexp @@ -0,0 +1,2 @@ +(libraries fmt) + diff --git a/src/document/comment.ml b/src/document/comment.ml index da8bb53af2..532472979b 100644 --- a/src/document/comment.ml +++ b/src/document/comment.ml @@ -413,8 +413,8 @@ let standalone docs = Utils.flatmap ~f:item_element @@ List.map (fun x -> x.Odoc_model.Location_.value) docs -let to_ir (docs : Comment.docs) = +let to_ir (docs : Comment.elements) = Utils.flatmap ~f:block_element - @@ List.map (fun x -> x.Odoc_model.Location_.value) docs.elements + @@ List.map (fun x -> x.Odoc_model.Location_.value) docs let has_doc docs = docs <> [] diff --git a/src/document/generator.ml b/src/document/generator.ml index b751147f44..e69c981dce 100644 --- a/src/document/generator.ml +++ b/src/document/generator.ml @@ -530,10 +530,9 @@ module Make (Syntax : SYNTAX) = struct field fld.mutable_ (fld.id :> Paths.Identifier.t) fld.type_ in let anchor = Some url in - let rhs = Comment.to_ir fld.doc in - let doc = - if not (Comment.has_doc fld.doc.elements) then [] else rhs - in + let doc = fld.doc.elements in + let rhs = Comment.to_ir doc in + let doc = if not (Comment.has_doc doc) then [] else rhs in let markers = Syntax.Comment.markers in DocumentedSrc.Documented { anchor; attrs; code; doc; markers }) in @@ -610,10 +609,9 @@ module Make (Syntax : SYNTAX) = struct cstr.args cstr.res in let anchor = Some url in - let rhs = Comment.to_ir cstr.doc in - let doc = - if not (Comment.has_doc cstr.doc.elements) then [] else rhs - in + let doc = cstr.doc.elements in + let rhs = Comment.to_ir doc in + let doc = if not (Comment.has_doc doc) then [] else rhs in let markers = Syntax.Comment.markers in DocumentedSrc.Nested { anchor; attrs; code; doc; markers }) in @@ -625,7 +623,7 @@ module Make (Syntax : SYNTAX) = struct let anchor = Some url in let attrs = [ "def"; "variant"; Url.Anchor.string_of_kind url.kind ] in let code = O.documentedSrc (O.txt "| ") @ constructor id t.args t.res in - let doc = Comment.to_ir t.doc in + let doc = Comment.to_ir t.doc.elements in let markers = Syntax.Comment.markers in DocumentedSrc.Nested { anchor; attrs; code; doc; markers } @@ -646,7 +644,7 @@ module Make (Syntax : SYNTAX) = struct in let attr = [ "type"; "extension" ] in let anchor = Some (Url.Anchor.extension_decl t) in - let doc = Comment.to_ir t.doc in + let doc = Comment.to_ir t.doc.elements in let source_anchor = (* Take the anchor from the first constructor only for consistency with regular variants. *) @@ -666,7 +664,7 @@ module Make (Syntax : SYNTAX) = struct in let attr = [ "exception" ] in let anchor = path_to_id t.id in - let doc = Comment.to_ir t.doc in + let doc = Comment.to_ir t.doc.elements in let source_anchor = source_anchor t.source_loc in Item.Declaration { attr; anchor; doc; content; source_anchor } @@ -710,7 +708,7 @@ module Make (Syntax : SYNTAX) = struct else O.txt " " ++ O.keyword "of" ++ O.sp ++ params)), match doc with | { elements = []; _ } -> None - | _ -> Some (Comment.to_ir doc) )) + | _ -> Some (Comment.to_ir doc.elements) )) in let markers = Syntax.Comment.markers in try @@ -881,7 +879,7 @@ module Make (Syntax : SYNTAX) = struct in let attr = "type" :: (if is_substitution then [ "subst" ] else []) in let anchor = path_to_id t.id in - let doc = Comment.to_ir t.doc in + let doc = Comment.to_ir t.doc.elements in let source_anchor = source_anchor t.source_loc in Item.Declaration { attr; anchor; doc; content; source_anchor } end @@ -909,7 +907,7 @@ module Make (Syntax : SYNTAX) = struct in let attr = [ "value" ] @ extra_attr in let anchor = path_to_id t.id in - let doc = Comment.to_ir t.doc in + let doc = Comment.to_ir t.doc.elements in let source_anchor = source_anchor t.source_loc in Item.Declaration { attr; anchor; doc; content; source_anchor } end @@ -1010,7 +1008,7 @@ module Make (Syntax : SYNTAX) = struct in let attr = [ "method" ] in let anchor = path_to_id t.id in - let doc = Comment.to_ir t.doc in + let doc = Comment.to_ir t.doc.elements in Item.Declaration { attr; anchor; doc; content; source_anchor = None } let instance_variable (t : Odoc_model.Lang.InstanceVariable.t) = @@ -1029,7 +1027,7 @@ module Make (Syntax : SYNTAX) = struct in let attr = [ "value"; "instance-variable" ] in let anchor = path_to_id t.id in - let doc = Comment.to_ir t.doc in + let doc = Comment.to_ir t.doc.elements in Item.Declaration { attr; anchor; doc; content; source_anchor = None } let inherit_ (ih : Lang.ClassSignature.Inherit.t) = @@ -1043,7 +1041,7 @@ module Make (Syntax : SYNTAX) = struct in let attr = [ "inherit" ] in let anchor = None in - let doc = Comment.to_ir ih.doc in + let doc = Comment.to_ir ih.doc.elements in Item.Declaration { attr; anchor; doc; content; source_anchor = None } let constraint_ (cst : Lang.ClassSignature.Constraint.t) = @@ -1052,7 +1050,7 @@ module Make (Syntax : SYNTAX) = struct in let attr = [] in let anchor = None in - let doc = Comment.to_ir cst.doc in + let doc = Comment.to_ir cst.doc.elements in Item.Declaration { attr; anchor; doc; content; source_anchor = None } let class_signature (c : Lang.ClassSignature.t) = @@ -1314,7 +1312,7 @@ module Make (Syntax : SYNTAX) = struct in let attr = [ "module-substitution" ] in let anchor = path_to_id t.id in - let doc = Comment.to_ir t.doc in + let doc = Comment.to_ir t.doc.elements in Item.Declaration { attr; anchor; doc; content; source_anchor = None } and module_type_substitution (t : Odoc_model.Lang.ModuleTypeSubstitution.t) @@ -1724,7 +1722,7 @@ module Make (Syntax : SYNTAX) = struct synopsis because no page is generated to render it and we'd loose the full documentation. The documentation from the expansion is not used. *) - Comment.to_ir t.doc + Comment.to_ir t.doc.elements in Item.Include { attr; anchor; doc; content; source_anchor = None } end diff --git a/src/document/sidebar.ml b/src/document/sidebar.ml index 4ac5cfc5de..98eed7e9af 100644 --- a/src/document/sidebar.ml +++ b/src/document/sidebar.ml @@ -94,7 +94,7 @@ end = struct | Page { short_title = None; _ } -> let title = let open Odoc_model in - match Comment.find_zero_heading entry.doc.elements with + match Comment.find_zero_heading entry.doc with | Some t -> t | None -> let name = diff --git a/src/driver/landing_pages.ml b/src/driver/landing_pages.ml index c07d389b52..ab1881b23e 100644 --- a/src/driver/landing_pages.ml +++ b/src/driver/landing_pages.ml @@ -18,13 +18,14 @@ let make_index ~dirs ?pkg ~rel_dir ?index ~content () = let odoc_file = Fpath.(odoc_dir // rel_dir / "page-index.odoc") in let odocl_file = Fpath.(odocl_dir // rel_dir / "page-index.odocl") in let parent_id = rel_dir |> Odoc.Id.of_fpath in + let pkg_args = Pkg_args.v ~pages ~libs ~odoc_dir ~odocl_dir in Util.with_out_to input_file (fun oc -> fpf (Format.formatter_of_out_channel oc) "%t@?" content) |> Result.get_ok; { output_dir = dirs.odoc_dir; pkgname = None; - pkg_args = { Pkg_args.pages; libs; odoc_dir; odocl_dir }; + pkg_args; parent_id; input_file; odoc_file; diff --git a/src/driver/odoc_unit.ml b/src/driver/odoc_unit.ml index bb47b86dc5..cc60aded15 100644 --- a/src/driver/odoc_unit.ml +++ b/src/driver/odoc_unit.ml @@ -2,11 +2,16 @@ module Pkg_args = struct type t = { odoc_dir : Fpath.t; odocl_dir : Fpath.t; - pages : (string * Fpath.t) list; - libs : (string * Fpath.t) list; + pages : Fpath.t Util.StringMap.t; + libs : Fpath.t Util.StringMap.t; } - let map_rel dir = List.map (fun (a, b) -> (a, Fpath.(dir // b))) + let v ~odoc_dir ~odocl_dir ~pages ~libs = + let pages, libs = Util.StringMap.(of_list pages, of_list libs) in + { odoc_dir; odocl_dir; pages; libs } + + let map_rel dir m = + Util.StringMap.fold (fun a b acc -> (a, Fpath.(dir // b)) :: acc) m [] let compiled_pages v = map_rel v.odoc_dir v.pages let compiled_libs v = map_rel v.odoc_dir v.libs @@ -21,8 +26,8 @@ module Pkg_args = struct { odoc_dir = v1.odoc_dir; odocl_dir = v1.odocl_dir; - pages = v1.pages @ v2.pages; - libs = v1.libs @ v2.libs; + pages = Util.StringMap.union (fun _ x _ -> Some x) v1.pages v2.pages; + libs = Util.StringMap.union (fun _ x _ -> Some x) v1.libs v2.libs; } let pp fmt x = @@ -33,7 +38,10 @@ module Pkg_args = struct in Format.fprintf fmt "@[odoc_dir: %a@;odocl_dir: %a@;pages: [%a]@;libs: [%a]@]" Fpath.pp - x.odoc_dir Fpath.pp x.odocl_dir sfp_pp x.pages sfp_pp x.libs + x.odoc_dir Fpath.pp x.odocl_dir sfp_pp + (Util.StringMap.bindings x.pages) + sfp_pp + (Util.StringMap.bindings x.libs) end type sidebar = { output_file : Fpath.t; json : bool } diff --git a/src/driver/odoc_unit.mli b/src/driver/odoc_unit.mli index 1f9d505c58..7cbc39c867 100644 --- a/src/driver/odoc_unit.mli +++ b/src/driver/odoc_unit.mli @@ -1,16 +1,18 @@ module Pkg_args : sig - type t = { - odoc_dir : Fpath.t; - odocl_dir : Fpath.t; - pages : (string * Fpath.t) list; - libs : (string * Fpath.t) list; - } + type t val compiled_pages : t -> (string * Fpath.t) list val compiled_libs : t -> (string * Fpath.t) list val linked_pages : t -> (string * Fpath.t) list val linked_libs : t -> (string * Fpath.t) list + val v : + odoc_dir:Fpath.t -> + odocl_dir:Fpath.t -> + pages:(string * Fpath.t) list -> + libs:(string * Fpath.t) list -> + t + val combine : t -> t -> t val pp : t Fmt.t diff --git a/src/driver/odoc_units_of.ml b/src/driver/odoc_units_of.ml index df21fada32..58c6510912 100644 --- a/src/driver/odoc_units_of.ml +++ b/src/driver/odoc_units_of.ml @@ -46,7 +46,7 @@ let packages ~dirs ~extra_paths ~remap (pkgs : Packages.t list) : t list = let base_args pkg lib_deps : Pkg_args.t = let own_page = dash_p pkg.Packages.name (doc_dir pkg) in let own_libs = List.concat_map dash_l (Util.StringSet.to_list lib_deps) in - { pages = [ own_page ]; libs = own_libs; odoc_dir; odocl_dir } + Pkg_args.v ~pages:[ own_page ] ~libs:own_libs ~odoc_dir ~odocl_dir in let args_of_config config : Pkg_args.t = let { Global_config.deps = { packages; libraries } } = config in @@ -61,7 +61,7 @@ let packages ~dirs ~extra_paths ~remap (pkgs : Packages.t list) : t list = packages in let libs_rel = List.concat_map dash_l libraries in - { pages = pages_rel; libs = libs_rel; odoc_dir; odocl_dir } + Pkg_args.v ~pages:pages_rel ~libs:libs_rel ~odoc_dir ~odocl_dir in let args_of = let cache = Hashtbl.create 10 in @@ -193,10 +193,13 @@ let packages ~dirs ~extra_paths ~remap (pkgs : Packages.t list) : t list = in let of_lib pkg (lib : Packages.libty) = let lib_deps = Util.StringSet.add lib.lib_name lib.lib_deps in - let landing_page :> t = - let index = index_of pkg in - Landing_pages.library ~dirs ~pkg ~index lib + let lib_deps = + List.fold_left + (fun acc lib -> Util.StringSet.add lib.Packages.lib_name acc) + lib_deps pkg.Packages.libraries in + let index = index_of pkg in + let landing_page :> t = Landing_pages.library ~dirs ~pkg ~index lib in landing_page :: List.concat_map (of_module pkg lib lib_deps) lib.modules in let of_mld pkg (mld : Packages.mld) : mld unit list = diff --git a/src/index/entry.ml b/src/index/entry.ml index fb746e920b..b81b6ca9f6 100644 --- a/src/index/entry.ml +++ b/src/index/entry.ml @@ -62,7 +62,7 @@ type kind = type t = { id : Odoc_model.Paths.Identifier.Any.t; - doc : Odoc_model.Comment.docs; + doc : Odoc_model.Comment.elements; kind : kind; } diff --git a/src/index/entry.mli b/src/index/entry.mli index bd51cf742e..b2704f5367 100644 --- a/src/index/entry.mli +++ b/src/index/entry.mli @@ -60,12 +60,12 @@ type kind = type t = { id : Odoc_model.Paths.Identifier.Any.t; - doc : Odoc_model.Comment.docs; + doc : Odoc_model.Comment.elements; kind : kind; } val entry : id:[< Odoc_model.Paths.Identifier.Any.t_pv ] Odoc_model.Paths.Identifier.id -> - doc:Odoc_model.Comment.docs -> + doc:Odoc_model.Comment.elements -> kind:kind -> t diff --git a/src/index/skeleton.ml b/src/index/skeleton.ml index 669e7065e6..921275ec27 100644 --- a/src/index/skeleton.ml +++ b/src/index/skeleton.ml @@ -6,13 +6,12 @@ open Odoc_utils type t = Entry.t Tree.t module Entry = struct + open Odoc_model.Comment + let of_comp_unit (u : Compilation_unit.t) = let has_expansion = true in let doc = - match u.content with - | Pack _ -> - { Odoc_model.Comment.elements = []; suppress_warnings = false } - | Module m -> m.doc + match u.content with Pack _ -> [] | Module m -> m.doc.elements in Entry.entry ~id:u.id ~doc ~kind:(Module { has_expansion }) @@ -20,7 +19,7 @@ module Entry = struct let has_expansion = match m.type_ with Alias (_, None) -> false | _ -> true in - Entry.entry ~id:m.id ~doc:m.doc ~kind:(Module { has_expansion }) + Entry.entry ~id:m.id ~doc:m.doc.elements ~kind:(Module { has_expansion }) let of_module_type (mt : ModuleType.t) = let has_expansion = @@ -35,7 +34,8 @@ module Entry = struct | _ -> false) | _ -> true in - Entry.entry ~id:mt.id ~doc:mt.doc ~kind:(ModuleType { has_expansion }) + Entry.entry ~id:mt.id ~doc:mt.doc.elements + ~kind:(ModuleType { has_expansion }) let of_type_decl (td : TypeDecl.t) = let kind = @@ -46,7 +46,7 @@ module Entry = struct representation = td.representation; } in - Entry.entry ~id:td.id ~doc:td.doc ~kind + Entry.entry ~id:td.id ~doc:td.doc.elements ~kind let varify_params = List.mapi (fun i param -> @@ -67,7 +67,7 @@ module Entry = struct params ) in let kind = Entry.Constructor { args; res } in - Entry.entry ~id:c.id ~doc:c.doc ~kind + Entry.entry ~id:c.id ~doc:c.doc.elements ~kind let of_field id_parent params (field : TypeDecl.Field.t) = let params = varify_params params in @@ -81,7 +81,7 @@ module Entry = struct Entry.Field { mutable_ = field.mutable_; type_ = field.type_; parent_type } in - Entry.entry ~id:field.id ~doc:field.doc ~kind + Entry.entry ~id:field.id ~doc:field.doc.elements ~kind let of_exception (exc : Exception.t) = let res = @@ -93,11 +93,11 @@ module Entry = struct | Some x -> x in let kind = Entry.Exception { args = exc.args; res } in - Entry.entry ~id:exc.id ~doc:exc.doc ~kind + Entry.entry ~id:exc.id ~doc:exc.doc.elements ~kind let of_value (v : Value.t) = let kind = Entry.Value { value = v.value; type_ = v.type_ } in - Entry.entry ~id:v.id ~doc:v.doc ~kind + Entry.entry ~id:v.id ~doc:v.doc.elements ~kind let of_extension_constructor type_path params (v : Extension.Constructor.t) = let res = @@ -108,26 +108,26 @@ module Entry = struct TypeExpr.Constr (type_path, params) in let kind = Entry.ExtensionConstructor { args = v.args; res } in - Entry.entry ~id:v.id ~doc:v.doc ~kind + Entry.entry ~id:v.id ~doc:v.doc.elements ~kind let of_class (cl : Class.t) = let kind = Entry.Class { virtual_ = cl.virtual_; params = cl.params } in - Entry.entry ~id:cl.id ~doc:cl.doc ~kind + Entry.entry ~id:cl.id ~doc:cl.doc.elements ~kind let of_class_type (ct : ClassType.t) = let kind = Entry.Class_type { virtual_ = ct.virtual_; params = ct.params } in - Entry.entry ~id:ct.id ~doc:ct.doc ~kind + Entry.entry ~id:ct.id ~doc:ct.doc.elements ~kind let of_method (m : Method.t) = let kind = Entry.Method { virtual_ = m.virtual_; private_ = m.private_; type_ = m.type_ } in - Entry.entry ~id:m.id ~doc:m.doc ~kind + Entry.entry ~id:m.id ~doc:m.doc.elements ~kind - let of_docs id doc = Entry.entry ~id ~doc ~kind:Doc + let of_docs id doc = Entry.entry ~id ~doc:doc.elements ~kind:Doc end let if_non_hidden id f = diff --git a/src/index/skeleton_of.ml b/src/index/skeleton_of.ml index 86fae97b3c..27a8e80e1d 100644 --- a/src/index/skeleton_of.ml +++ b/src/index/skeleton_of.ml @@ -39,18 +39,15 @@ let compare_entry (t1 : t) (t2 : t) = try_ Astring.String.compare by_name @@ fun () -> 0 let rec t_of_in_progress (dir : In_progress.in_progress) : t = - let empty_doc = { Comment.elements = []; suppress_warnings = false } in - let entry_of_page page = let kind = Entry.Page page.Lang.Page.frontmatter in - let doc = page.content in + let doc = page.content.elements in let id = page.name in Entry.entry ~kind ~doc ~id in let entry_of_impl id = let kind = Entry.Impl in - let doc = empty_doc in - Entry.entry ~kind ~doc ~id + Entry.entry ~kind ~doc:[] ~id in let children_order, index = match In_progress.index dir with @@ -63,16 +60,14 @@ let rec t_of_in_progress (dir : In_progress.in_progress) : t = match In_progress.root_dir dir with | Some id -> let kind = Entry.Dir in - let doc = empty_doc in - Entry.entry ~kind ~doc ~id + Entry.entry ~kind ~doc:[] ~id | None -> let id = (* root dir must have an index page *) Id.Mk.leaf_page (None, Names.PageName.make_std "index") in let kind = Entry.Dir in - let doc = empty_doc in - Entry.entry ~kind ~doc ~id + Entry.entry ~kind ~doc:[] ~id in (None, entry) in diff --git a/src/loader/cmt.ml b/src/loader/cmt.ml index 5f4ad66c08..b0aa51ee0b 100644 --- a/src/loader/cmt.ml +++ b/src/loader/cmt.ml @@ -395,12 +395,13 @@ let rec read_module_expr env parent label_parent mexpr = Functor (f_parameter, res) #else | Tmod_functor(id, _, arg, res) -> - let new_env = Env.add_parameter parent id (ModuleName.of_ident id) env in + let new_env = Env.add_parameter parent id (ModuleName.of_ident id) env.ident_env in + let new_env = {env with ident_env = new_env} in let f_parameter = match arg with | None -> FunctorParameter.Unit | Some arg -> - let id = Env.find_parameter_identifier new_env id in + let id = Env.find_parameter_identifier new_env.ident_env id in let arg = Cmti.read_module_type env (id :> Identifier.Signature.t) label_parent arg in Named { FunctorParameter. id; expr = arg; } in diff --git a/src/loader/cmti.ml b/src/loader/cmti.ml index 5e7b431d01..438964375b 100644 --- a/src/loader/cmti.ml +++ b/src/loader/cmti.ml @@ -546,12 +546,13 @@ and read_module_type env parent label_parent mty = Functor (f_parameter, res) #else | Tmty_functor(id, _, arg, res) -> - let new_env = Env.add_parameter parent id (ModuleName.of_ident id) env in + let new_env = Env.add_parameter parent id (ModuleName.of_ident id) env.ident_env in + let new_env = {env with ident_env = new_env} in let f_parameter = match arg with | None -> Odoc_model.Lang.FunctorParameter.Unit | Some arg -> - let id = Ident_env.find_parameter_identifier new_env id in + let id = Ident_env.find_parameter_identifier new_env.ident_env id in let arg = read_module_type env (id :> Identifier.Signature.t) label_parent arg in Named { FunctorParameter. id; expr = arg } in diff --git a/src/model/paths_types.ml b/src/model/paths_types.ml index ac0d0cfc18..6b02f75ba3 100644 --- a/src/model/paths_types.ml +++ b/src/model/paths_types.ml @@ -551,9 +551,9 @@ module rec Reference : sig type tag_only_child_module = [ `TChildModule ] type tag_hierarchy = - [ `TRelativePath (** {!identifier/} *) - | `TAbsolutePath (** {!/identifier} *) - | `TCurrentPackage (** {!//identifier} *) ] + [ `TRelativePath (** [{!identifier/}] *) + | `TAbsolutePath (** [{!/identifier}] *) + | `TCurrentPackage (** [{!//identifier}] *) ] (** @canonical Odoc_model.Paths.Reference.tag_hierarchy *) type tag_any = diff --git a/src/ocamlary/ocamlary.mli b/src/ocamlary/ocamlary.mli index f5a8de70bd..e5ba4d1038 100644 --- a/src/ocamlary/ocamlary.mli +++ b/src/ocamlary/ocamlary.mli @@ -1068,10 +1068,3 @@ type new_t = .. type new_t += C module type TypeExtPruned = TypeExt with type t := new_t - -(** {1 Unresolved references} *) - -(** - {!Stdlib.Invalid_argument} - - {!Hashtbl.t} - - {!Set.S.empty} - - {!CollectionModule.InnerModuleA.foo} *) diff --git a/src/odoc/html_fragment.ml b/src/odoc/html_fragment.ml index 454e45f440..741f2e822e 100644 --- a/src/odoc/html_fragment.ml +++ b/src/odoc/html_fragment.ml @@ -34,7 +34,7 @@ let from_mld ~xref_base_uri ~resolver ~output ~warnings_options input = Odoc_xref2.Link.resolve_page ~filename:input_s env page |> Odoc_model.Error.handle_warnings ~warnings_options >>= fun resolved -> - let page = Odoc_document.Comment.to_ir resolved.content in + let page = Odoc_document.Comment.to_ir resolved.content.elements in let config = Odoc_html.Config.v ~semantic_uris:false ~indent:false ~flat:false ~open_details:false ~as_json:false ~remap:[] () diff --git a/src/search/html.mli b/src/search/html.mli index 32862220b6..1533d14a73 100644 --- a/src/search/html.mli +++ b/src/search/html.mli @@ -9,7 +9,7 @@ val url : Entry.t -> string (** The below is intended for search engine that do not use the Json output but Odoc as a library. Most search engine will use their own representation - instead of {!Entry.t}, and may not want to store the whole HTML in their + instead of {!Odoc_index.Entry.t}, and may not want to store the whole HTML in their database. The following functions help give correct values to store in a search database. *) @@ -27,11 +27,11 @@ val names_of_id : Paths.Identifier.t -> string * string The tuple is intended to be given respectively to the [prefix_name] and [name] arguments of {!Odoc_html_frontend.of_strings}. *) -val of_doc : Comment.docs -> html +val of_doc : Comment.elements -> html (** [of_doc d] returns the HTML associated of the documentation comment [d], generated correctly for search (no links or anchors). *) -val html_string_of_doc : Comment.docs -> string +val html_string_of_doc : Comment.elements -> string (** [html_string_of_doc d] is the same as {!of_doc} converted to a string. *) diff --git a/src/search/json_index/json_search.ml b/src/search/json_index/json_search.ml index ec2a9a4a92..fa45dea50b 100644 --- a/src/search/json_index/json_search.ml +++ b/src/search/json_index/json_search.ml @@ -81,7 +81,7 @@ let rec of_id x = let of_id n = `Array (List.rev @@ of_id (n :> Odoc_model.Paths.Identifier.t)) -let of_doc (doc : Odoc_model.Comment.docs) = +let of_doc (doc : Odoc_model.Comment.elements) = let txt = Text.of_doc doc in `String txt diff --git a/src/search/odoc_html_frontend.mli b/src/search/odoc_html_frontend.mli index 7e1c135d20..1134225f48 100644 --- a/src/search/odoc_html_frontend.mli +++ b/src/search/odoc_html_frontend.mli @@ -1,6 +1,6 @@ (** This library is intended for search engine that do not use the Json output but Odoc as a library. Most search engine will use their own representation - instead of {!Entry.t}, and may not want to store the whole HTML in their + instead of {!Odoc_index.Entry.t}, and may not want to store the whole HTML in their database. This library contains functions that are useful for the frontend of such search engines. diff --git a/src/search/text.ml b/src/search/text.ml index 6aef8bf37e..3ef043edfb 100644 --- a/src/search/text.ml +++ b/src/search/text.ml @@ -41,8 +41,8 @@ module Of_comments = struct let get_value x = x.Odoc_model.Location_.value - let rec string_of_doc (doc : Odoc_model.Comment.docs) = - doc.elements |> List.map get_value + let rec string_of_doc (doc : Odoc_model.Comment.elements) = + doc |> List.map get_value |> List.map s_of_block_element |> String.concat "\n" diff --git a/src/search/text.mli b/src/search/text.mli index 7ed6f2e7a7..0bedba25b4 100644 --- a/src/search/text.mli +++ b/src/search/text.mli @@ -4,6 +4,6 @@ val of_type : Odoc_model.Lang.TypeExpr.t -> string -val of_doc : Odoc_model.Comment.docs -> string +val of_doc : Odoc_model.Comment.elements -> string val of_record : Odoc_model.Lang.TypeDecl.Field.t list -> string diff --git a/src/utils/odoc_list.ml b/src/utils/odoc_list.ml index a571bb9241..4b2927befe 100644 --- a/src/utils/odoc_list.ml +++ b/src/utils/odoc_list.ml @@ -16,7 +16,7 @@ let rec filter_map acc f = function let filter_map f x = filter_map [] f x -(** @raise [Failure] if the list is empty. *) +(** @raise Failure if the list is empty. *) let rec last = function | [] -> failwith "Odoc_utils.List.last" | [ x ] -> x diff --git a/src/xref2/paths.md b/src/xref2/paths.md index 8d50064b39..9ce9231dc8 100644 --- a/src/xref2/paths.md +++ b/src/xref2/paths.md @@ -434,7 +434,9 @@ val sg : Odoc_model.Lang.Signature.t = ihash = 818126955; ikey = "r_Root.p_None"}, ARG); ihash = 379411454; ikey = "mt_ARG.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -457,8 +459,14 @@ val sg : Odoc_model.Lang.Signature.t = ihash = 379411454; ikey = "mt_ARG.r_Root.p_None"}, S); ihash = 208722936; ikey = "mt_S.mt_ARG.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; expr = None}]; - compiled = true; removed = []; doc = []})}; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; expr = None}]; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}})}; Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = {Odoc_model__Paths_types.iv = @@ -472,7 +480,8 @@ val sg : Odoc_model.Lang.Signature.t = ihash = 818126955; ikey = "r_Root.p_None"}, F); ihash = 748202139; ikey = "m_F.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Functor @@ -527,9 +536,15 @@ val sg : Odoc_model.Lang.Signature.t = S); ihash = 313393860; ikey = "mt_S.p_X.m_F.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; - expr = None}]; - compiled = true; removed = []; doc = []}); + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; expr = None}]; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}}); p_path = `Resolved (`Identifier @@ -565,25 +580,19 @@ val sg : Odoc_model.Lang.Signature.t = Root); ihash = 818126955; ikey = - "r_Root.p_Non"... (* string length 13; truncated *)}, - F); - ihash = 748202139; - ikey = - "m_F.r_Roo"... (* string length 17; truncated *)}; - ihash = 709672416; - ikey = - "___resul"... (* string length 29; truncated *)}, - N); - ihash = 837385364; - ikey = "m_N.___r"... (* string length 33; truncated *)}; - source_loc = None; doc = []; - type_ = Odoc_model.Lang.Module.ModuleType ...; - canonical = ...; hidden = ...}); - ...]; - compiled = ...; removed = ...; doc = ...})); - canonical = ...; hidden = ...}); - ...]; - compiled = ...; removed = ...; doc = ...} + "r_Root.p"... (* string length 13; truncated *)}, + ...); + ihash = ...; ikey = ...}; + ihash = ...; ikey = ...}, + ...); + ihash = ...; ikey = ...}; + source_loc = ...; doc = ...; type_ = ...; canonical = ...; + hidden = ...}); + ...]; + compiled = ...; removed = ...; doc = ...})); + canonical = ...; hidden = ...}); + ...]; + compiled = ...; removed = ...; doc = ...} ``` The problem here is that odoc will not generate a page for the module `F(M)`. diff --git a/src/xref2/test.md b/src/xref2/test.md index d48abbd261..46b1bf17c6 100644 --- a/src/xref2/test.md +++ b/src/xref2/test.md @@ -206,7 +206,9 @@ and so we simply look up the type in the environment, giving a `Component.Type.t ihash = 818126955; ikey = "r_Root.p_None"}, x); ihash = 622581103; ikey = "t_x.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; @@ -224,7 +226,9 @@ and so we simply look up the type in the environment, giving a `Component.Type.t ihash = 818126955; ikey = "r_Root.p_None"}, u); ihash = 15973539; ikey = "t_u.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = @@ -246,7 +250,8 @@ and so we simply look up the type in the environment, giving a `Component.Type.t [])); constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []} + compiled = true; removed = []; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}} ``` ### One module @@ -332,7 +337,10 @@ val path : Cpath.Resolved.module_ = val module_ : Component.Module.t Component.Delayed.t = {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.Signature @@ -341,14 +349,20 @@ val module_ : Component.Module.t Component.Delayed.t = Odoc_model.Lang.Signature.Ordinary, {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.TypeDecl.source_loc = None; doc = []; + {Odoc_xref2.Component.TypeDecl.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; canonical = None; equation = {Odoc_xref2.Component.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None}; get = None})]; - compiled = false; removed = []; doc = []}); + compiled = false; removed = []; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}}); canonical = None; hidden = false}; get = None} ``` @@ -364,14 +378,19 @@ Odoc_xref2.Tools.Signature Odoc_model.Lang.Signature.Ordinary, {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.TypeDecl.source_loc = None; doc = []; + {Odoc_xref2.Component.TypeDecl.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; canonical = None; equation = {Odoc_xref2.Component.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None}; get = None})]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = + {Odoc_xref2.Component.CComment.elements = []; suppress_warnings = false}} ``` We're now in a position to verify the existence of the type `t` we're @@ -419,7 +438,10 @@ val path : Cpath.Resolved.module_ = val module_ : Component.Module.t Component.Delayed.t = {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.Path @@ -485,7 +507,10 @@ val m : Component.Element.module_type option = ihash = 818126955; ikey = "r_Root.p_None"}, M); ihash = 459143770; ikey = "mt_M.r_Root.p_None"}, - {Odoc_xref2.Component.ModuleType.source_loc = None; doc = []; + {Odoc_xref2.Component.ModuleType.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; canonical = None; expr = Some @@ -496,7 +521,10 @@ val m : Component.Element.module_type option = {Odoc_xref2.Component.Delayed.v = Some {Odoc_xref2.Component.ModuleType.source_loc = None; - doc = []; canonical = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; + canonical = None; expr = Some (Odoc_xref2.Component.ModuleType.Signature @@ -508,7 +536,10 @@ val m : Component.Element.module_type option = Some {Odoc_xref2.Component.TypeDecl.source_loc = None; - doc = []; canonical = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_xref2.Component.TypeDecl.Equation.params = []; @@ -516,13 +547,19 @@ val m : Component.Element.module_type option = constraints = []}; representation = None}; get = None})]; - compiled = false; removed = []; doc = []})}; + compiled = false; removed = []; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}})}; get = None}); Odoc_xref2.Component.Signature.Module (`LModule (B, 0), Odoc_model.Lang.Signature.Ordinary, {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.Path @@ -530,7 +567,10 @@ val m : Component.Element.module_type option = p_path = `Local (`LModuleType (N, 1), false)}); canonical = None; hidden = false}; get = None})]; - compiled = false; removed = []; doc = []})})) + compiled = false; removed = []; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}})})) ``` We can see here that module `B` has type `` Path (`Resolved (`Local (`LModuleType (N, 1)))) `` which refers to the module type defined just above it. @@ -840,7 +880,8 @@ val module_C_lens : ihash = 818126955; ikey = "r_Root.p_None"}, C); ihash = 43786577; ikey = "m_C.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.With @@ -888,7 +929,10 @@ of module `C` we see the following: val m : Component.Module.t Component.Delayed.t = {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.With @@ -941,7 +985,10 @@ val sg : Tools.expansion = Odoc_model.Lang.Signature.Ordinary, {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.Alias (`Identifier @@ -964,7 +1011,10 @@ val sg : Tools.expansion = Odoc_model.Lang.Signature.Ordinary, {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.Path @@ -973,7 +1023,9 @@ val sg : Tools.expansion = `DotMT (`Substituted (`Local (`LModule (M, 32), false)), S)}); canonical = None; hidden = false}; get = None})]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = + {Odoc_xref2.Component.CComment.elements = []; suppress_warnings = false}} ``` and we can see the module `M` is now an alias of the root module `B`. We can now @@ -985,7 +1037,10 @@ look up module `N` from within this and find its signature: val m : Component.Module.t Component.Delayed.t = {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.Path @@ -1021,14 +1076,19 @@ Odoc_xref2.Tools.Signature Odoc_model.Lang.Signature.Ordinary, {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.TypeDecl.source_loc = None; doc = []; + {Odoc_xref2.Component.TypeDecl.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; canonical = None; equation = {Odoc_xref2.Component.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None}; get = None})]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = + {Odoc_xref2.Component.CComment.elements = []; suppress_warnings = false}} ``` where we've correctly identified that a type `t` exists in the signature. The path in @@ -1589,7 +1649,10 @@ val p : Cpath.Resolved.module_ = val m : Component.Module.t Component.Delayed.t = {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.Path @@ -1641,7 +1704,10 @@ val sg' : Tools.expansion = Odoc_model.Lang.Signature.Ordinary, {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.Path @@ -1671,7 +1737,9 @@ val sg' : Tools.expansion = T)}); canonical = None; hidden = false}; get = None})]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = + {Odoc_xref2.Component.CComment.elements = []; suppress_warnings = false}} # let sg' = get_ok @@ Tools.expansion_of_module env (Component.Delayed.get m);; val sg' : Tools.expansion = Odoc_xref2.Tools.Signature @@ -1680,7 +1748,10 @@ val sg' : Tools.expansion = Odoc_model.Lang.Signature.Ordinary, {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.Path @@ -1710,7 +1781,9 @@ val sg' : Tools.expansion = T)}); canonical = None; hidden = false}; get = None})]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = + {Odoc_xref2.Component.CComment.elements = []; suppress_warnings = false}} # let sg' = get_ok @@ Tools.expansion_of_module env (Component.Delayed.get m);; val sg' : Tools.expansion = Odoc_xref2.Tools.Signature @@ -1719,7 +1792,10 @@ val sg' : Tools.expansion = Odoc_model.Lang.Signature.Ordinary, {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.Path @@ -1749,7 +1825,9 @@ val sg' : Tools.expansion = T)}); canonical = None; hidden = false}; get = None})]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = + {Odoc_xref2.Component.CComment.elements = []; suppress_warnings = false}} # let sg' = get_ok @@ Tools.expansion_of_module env (Component.Delayed.get m);; val sg' : Tools.expansion = Odoc_xref2.Tools.Signature @@ -1758,7 +1836,10 @@ val sg' : Tools.expansion = Odoc_model.Lang.Signature.Ordinary, {Odoc_xref2.Component.Delayed.v = Some - {Odoc_xref2.Component.Module.source_loc = None; doc = []; + {Odoc_xref2.Component.Module.source_loc = None; + doc = + {Odoc_xref2.Component.CComment.elements = []; + suppress_warnings = false}; type_ = Odoc_xref2.Component.Module.ModuleType (Odoc_xref2.Component.ModuleType.Path @@ -1788,7 +1869,9 @@ val sg' : Tools.expansion = T)}); canonical = None; hidden = false}; get = None})]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = + {Odoc_xref2.Component.CComment.elements = []; suppress_warnings = false}} ``` ```ocaml env=e1 @@ -2537,27 +2620,29 @@ let resolved = Common.compile_signature sg;; ihash = 1016576344; ikey = "t_t.r_Root.p_None"}; source_loc = None; doc = - [{Odoc_model__.Location_.location = - {Odoc_model__.Location_.file = ""; - start = {Odoc_model__.Location_.line = 3; column = 6}; - end_ = {Odoc_model__.Location_.line = 3; column = 14}}; - value = - `Paragraph - [{Odoc_model__.Location_.location = - {Odoc_model__.Location_.file = ""; - start = {Odoc_model__.Location_.line = 3; column = 6}; - end_ = {Odoc_model__.Location_.line = 3; column = 9}}; - value = `Code_span "t"}; - {Odoc_model__.Location_.location = - {Odoc_model__.Location_.file = ""; - start = {Odoc_model__.Location_.line = 3; column = 9}; - end_ = {Odoc_model__.Location_.line = 3; column = 10}}; - value = `Space}; - {Odoc_model__.Location_.location = - {Odoc_model__.Location_.file = ""; - start = {Odoc_model__.Location_.line = 3; column = 10}; - end_ = {Odoc_model__.Location_.line = 3; column = 14}}; - value = `Reference (`Root ("t", `TUnknown), [])}]}]; + {Odoc_model__.Comment.elements = + [{Odoc_model__.Location_.location = + {Odoc_model__.Location_.file = ""; + start = {Odoc_model__.Location_.line = 3; column = 6}; + end_ = {Odoc_model__.Location_.line = 3; column = 14}}; + value = + `Paragraph + [{Odoc_model__.Location_.location = + {Odoc_model__.Location_.file = ""; + start = {Odoc_model__.Location_.line = 3; column = 6}; + end_ = {Odoc_model__.Location_.line = 3; column = 9}}; + value = `Code_span "t"}; + {Odoc_model__.Location_.location = + {Odoc_model__.Location_.file = ""; + start = {Odoc_model__.Location_.line = 3; column = 9}; + end_ = {Odoc_model__.Location_.line = 3; column = 10}}; + value = `Space}; + {Odoc_model__.Location_.location = + {Odoc_model__.Location_.file = ""; + start = {Odoc_model__.Location_.line = 3; column = 10}; + end_ = {Odoc_model__.Location_.line = 3; column = 14}}; + value = `Reference (`Root ("t", `TUnknown), [])}]}]; + suppress_warnings = false}; canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; @@ -2599,7 +2684,9 @@ let sg = Common.signature_of_mli_string test_data;; ihash = 818126955; ikey = "r_Root.p_None"}, M); ihash = 459143770; ikey = "mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -2623,12 +2710,18 @@ let sg = Common.signature_of_mli_string test_data;; ihash = 459143770; ikey = "mt_M.r_Root.p_None"}, t); ihash = 825731485; ikey = "t_t.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = false; removed = []; doc = []})}; + compiled = false; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}})}; Odoc_model.Lang.Signature.Type (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.TypeDecl.id = {Odoc_model__Paths_types.iv = @@ -2642,7 +2735,9 @@ let sg = Common.signature_of_mli_string test_data;; ihash = 818126955; ikey = "r_Root.p_None"}, u); ihash = 15973539; ikey = "t_u.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; @@ -2660,7 +2755,9 @@ let sg = Common.signature_of_mli_string test_data;; ihash = 818126955; ikey = "r_Root.p_None"}, M1); ihash = 756272831; ikey = "mt_M1.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.With @@ -2703,7 +2800,8 @@ let sg = Common.signature_of_mli_string test_data;; ihash = 818126955; ikey = "r_Root.p_None"}, M); ihash = 459143770; ikey = "mt_M.r_Root.p_None"}))})}]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}} ``` # Expansion continued @@ -2750,7 +2848,10 @@ Odoc_model.Lang.ModuleType.Path ihash = 716453475; ikey = "m_M.r_Root.p_None"}, s); ihash = 395135148; ikey = "t_s.m_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; @@ -2778,7 +2879,9 @@ Odoc_model.Lang.ModuleType.Path ihash = 395135148; ikey = "t_s.m_M.r_Root.p_None"}, ); ihash = 2570800; ikey = "ctor_C.t_s.m_M.r_Root.p_None"}; - doc = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; args = Odoc_model.Lang.TypeDecl.Constructor.Tuple [Odoc_model.Lang.TypeExpr.Constr @@ -2820,7 +2923,8 @@ Odoc_model.Lang.ModuleType.Path t)), [])]; res = None}])})]; - compiled = true; removed = []; doc = []}); + compiled = true; removed = []; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}}); p_path = `Resolved (`ModuleType @@ -2905,7 +3009,8 @@ let m_e_i_s_value mod_name n val_name = ihash = 670280318; ikey = "m_Foo3.r_Root.p_None"}, id); ihash = 424389437; ikey = "v_id.m_Foo3.r_Root.p_None"}; - source_loc = None; value = Odoc_model.Lang.Value.Abstract; doc = []; + source_loc = None; value = Odoc_model.Lang.Value.Abstract; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.TypeExpr.Constr (`DotT @@ -2942,7 +3047,8 @@ let m_e_i_s_value mod_name n val_name = ihash = 670280318; ikey = "m_Foo3.r_Root.p_None"}, id2); ihash = 412619918; ikey = "v_id2.m_Foo3.r_Root.p_None"}; - source_loc = None; value = Odoc_model.Lang.Value.Abstract; doc = []; + source_loc = None; value = Odoc_model.Lang.Value.Abstract; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.TypeExpr.Constr (`Identifier @@ -3015,7 +3121,9 @@ let sg = Common.signature_of_mli_string test_data;; {t}3/shadowed/(XXXX)); ihash = 584226322; ikey = "t_{t}3/shadowed/(XXXX).m_Foo3.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = @@ -3056,7 +3164,8 @@ let sg = Common.signature_of_mli_string test_data;; ihash = 670280318; ikey = "m_Foo3.r_Root.p_None"}, id); ihash = 424389437; ikey = "v_id.m_Foo3.r_Root.p_None"}; - source_loc = None; value = Odoc_model.Lang.Value.Abstract; doc = []; + source_loc = None; value = Odoc_model.Lang.Value.Abstract; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.TypeExpr.Constr (`Identifier @@ -3078,7 +3187,8 @@ let sg = Common.signature_of_mli_string test_data;; ikey = "t_{t}3/shadowed/(XXXX).m_Foo3.r_Root.p_None"}, false), [])}]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}} # Common.LangUtils.Lens.get (module_expansion_include_sig "Foo3" 1) sg;; - : Odoc_model.Lang.Signature.t = {Odoc_model.Lang.Signature.items = @@ -3100,7 +3210,9 @@ let sg = Common.signature_of_mli_string test_data;; {t}4/shadowed/(XXXX)); ihash = 466750041; ikey = "t_{t}4/shadowed/(XXXX).m_Foo3.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = @@ -3141,7 +3253,8 @@ let sg = Common.signature_of_mli_string test_data;; ihash = 670280318; ikey = "m_Foo3.r_Root.p_None"}, id2); ihash = 412619918; ikey = "v_id2.m_Foo3.r_Root.p_None"}; - source_loc = None; value = Odoc_model.Lang.Value.Abstract; doc = []; + source_loc = None; value = Odoc_model.Lang.Value.Abstract; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.TypeExpr.Constr (`Identifier @@ -3163,7 +3276,8 @@ let sg = Common.signature_of_mli_string test_data;; ikey = "t_{t}4/shadowed/(XXXX).m_Foo3.r_Root.p_None"}, false), [])}]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}} ``` @@ -3217,7 +3331,9 @@ let sg = Common.signature_of_mli_string test_data;; {t}5/shadowed/(XXXX)); ihash = 995358055; ikey = "t_{t}5/shadowed/(XXXX).m_Foo3.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = @@ -3259,7 +3375,8 @@ let sg = Common.signature_of_mli_string test_data;; {x}6/shadowed/(XXXX)); ihash = 1011043008; ikey = "v_{x}6/shadowed/(XXXX).m_Foo3.r_Root.p_None"}; - source_loc = None; value = Odoc_model.Lang.Value.Abstract; doc = []; + source_loc = None; value = Odoc_model.Lang.Value.Abstract; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.TypeExpr.Constr (`Resolved (`CoreType int), [])}; Odoc_model.Lang.Signature.Value {Odoc_model.Lang.Value.id = @@ -3278,7 +3395,8 @@ let sg = Common.signature_of_mli_string test_data;; ihash = 670280318; ikey = "m_Foo3.r_Root.p_None"}, id); ihash = 424389437; ikey = "v_id.m_Foo3.r_Root.p_None"}; - source_loc = None; value = Odoc_model.Lang.Value.Abstract; doc = []; + source_loc = None; value = Odoc_model.Lang.Value.Abstract; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.TypeExpr.Constr (`Identifier @@ -3300,7 +3418,8 @@ let sg = Common.signature_of_mli_string test_data;; ikey = "t_{t}5/shadowed/(XXXX).m_Foo3.r_Root.p_None"}, false), [])}]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}} ``` @@ -3353,7 +3472,8 @@ let sg = Common.signature_of_mli_string test_data;; {Bar}8/shadowed/(XXXX)); ihash = 38422300; ikey = "m_{Bar}8/shadowed/(XXXX).m_Foo3.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.Alias (`Dot @@ -3390,7 +3510,8 @@ let sg = Common.signature_of_mli_string test_data;; ihash = 670280318; ikey = "m_Foo3.r_Root.p_None"}, id); ihash = 424389437; ikey = "v_id.m_Foo3.r_Root.p_None"}; - source_loc = None; value = Odoc_model.Lang.Value.Abstract; doc = []; + source_loc = None; value = Odoc_model.Lang.Value.Abstract; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.TypeExpr.Constr (`DotT @@ -3415,5 +3536,6 @@ let sg = Common.signature_of_mli_string test_data;; true), t), [])}]; - compiled = false; removed = []; doc = []} + compiled = false; removed = []; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}} ``` diff --git a/test/generators/html/Ocamlary.html b/test/generators/html/Ocamlary.html index 00d6c31562..20f88447e8 100644 --- a/test/generators/html/Ocamlary.html +++ b/test/generators/html/Ocamlary.html @@ -71,7 +71,6 @@

Module Ocamlary

  • Aliases again
  • Section title splicing
  • New reference syntax
  • -
  • Unresolved references
  • @@ -2961,13 +2960,6 @@

    -

    - Unresolved references -

    - diff --git a/test/generators/latex/Ocamlary.tex b/test/generators/latex/Ocamlary.tex index 3cf7bc5a1e..96aae99f30 100644 --- a/test/generators/latex/Ocamlary.tex +++ b/test/generators/latex/Ocamlary.tex @@ -895,11 +895,6 @@ \subsection{New reference syntax\label{new-reference-syntax}}% \label{Ocamlary-module-type-TypeExtPruned-val-f}\ocamlcodefragment{\ocamltag{keyword}{val} f : \hyperref[Ocamlary-type-new_t]{\ocamlinlinecode{new\_\allowbreak{}t}} \ocamltag{arrow}{$\rightarrow$} unit}\\ \end{ocamlindent}% \ocamlcodefragment{\ocamltag{keyword}{end}}\\ -\subsection{Unresolved references\label{unresolved-references}}% -\begin{itemize}\item{\ocamlinlinecode{Stdlib.\allowbreak{}Invalid\_\allowbreak{}argument}}% -\item{\ocamlinlinecode{Hashtbl.\allowbreak{}t}}% -\item{\ocamlinlinecode{Set.\allowbreak{}S.\allowbreak{}empty}}% -\item{\ocamlinlinecode{CollectionModule.\allowbreak{}InnerModuleA.\allowbreak{}foo}}\end{itemize}% \input{Ocamlary.ModuleWithSignature.tex} \input{Ocamlary.ModuleWithSignatureAlias.tex} diff --git a/test/generators/man/Ocamlary.3o b/test/generators/man/Ocamlary.3o index 1ef3504938..b3babc10d4 100644 --- a/test/generators/man/Ocamlary.3o +++ b/test/generators/man/Ocamlary.3o @@ -1902,18 +1902,3 @@ Here goes: \f[CB]val\fR f : new_t \f[CB]\->\fR unit .br \f[CB]end\fR -.sp -.in 3 -\fB8 Unresolved references\fR -.in -.sp -.fi -\(bu Stdlib\.Invalid_argument -.br -\(bu Hashtbl\.t -.br -\(bu Set\.S\.empty -.br -\(bu CollectionModule\.InnerModuleA\.foo -.nf - diff --git a/test/xref2/resolve/test.md b/test/xref2/resolve/test.md index ed11411418..7b8d862f24 100644 --- a/test/xref2/resolve/test.md +++ b/test/xref2/resolve/test.md @@ -101,7 +101,9 @@ Simplest possible resolution: ihash = 818126955; ikey = "r_Root.p_None"}, t); ihash = 1016576344; ikey = "t_t.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; @@ -119,7 +121,9 @@ Simplest possible resolution: ihash = 818126955; ikey = "r_Root.p_None"}, u); ihash = 15973539; ikey = "t_u.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = @@ -142,7 +146,8 @@ Simplest possible resolution: [])); constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []}; + compiled = true; removed = []; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}}; expansion = None; linked = false; source_loc = None; canonical = None} ``` @@ -246,7 +251,8 @@ Basic resolution 2, environment lookup: ihash = 818126955; ikey = "r_Root.p_None"}, M); ihash = 716453475; ikey = "m_M.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Signature @@ -270,12 +276,18 @@ Basic resolution 2, environment lookup: ihash = 716453475; ikey = "m_M.r_Root.p_None"}, t); ihash = 746522241; ikey = "t_t.m_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []}); + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}}); canonical = None; hidden = false}); Odoc_model.Lang.Signature.Type (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.TypeDecl.id = @@ -290,7 +302,9 @@ Basic resolution 2, environment lookup: ihash = 818126955; ikey = "r_Root.p_None"}, u); ihash = 15973539; ikey = "t_u.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = @@ -315,7 +329,8 @@ Basic resolution 2, environment lookup: [])); constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []}; + compiled = true; removed = []; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}}; expansion = None; linked = false; source_loc = None; canonical = None} ``` @@ -392,7 +407,9 @@ Basic resolution 3, module type: ihash = 818126955; ikey = "r_Root.p_None"}, M); ihash = 459143770; ikey = "mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -416,12 +433,18 @@ Basic resolution 3, module type: ihash = 459143770; ikey = "mt_M.r_Root.p_None"}, t); ihash = 825731485; ikey = "t_t.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []})}; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}})}; Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = {Odoc_model__Paths_types.iv = @@ -435,7 +458,8 @@ Basic resolution 3, module type: ihash = 818126955; ikey = "r_Root.p_None"}, N); ihash = 502470005; ikey = "m_N.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Path @@ -462,12 +486,19 @@ Basic resolution 3, module type: ihash = 502470005; ikey = "m_N.r_Root.p_None"}, t); ihash = 598040815; ikey = "t_t.m_N.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []}); + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}}); p_path = `Resolved (`Identifier @@ -496,24 +527,14 @@ Basic resolution 3, module type: Root); ihash = 818126955; ikey = "r_Root.p_None"}, u); - ihash = 15973539; ikey = "t_u.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + ihash = 15973539; + ikey = "t_u.r_Root.p_"... (* string length 17; truncated *)}; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; - manifest = - Some - (Odoc_model.Lang.TypeExpr.Constr - (`Resolved - (`Type - (`Identifier - {Odoc_model__Paths_types.iv = - `Module - ({Odoc_model__Paths_types.iv = ...; ihash = ...; - ikey = ...}, - ...); - ihash = ...; ikey = ...}, - ...)), - ...)); + manifest = Some (Odoc_model.Lang.TypeExpr.Constr (...)); constraints = ...}; representation = ...}); ...]; @@ -572,7 +593,9 @@ Basic resolution 4, module type: ihash = 818126955; ikey = "r_Root.p_None"}, M); ihash = 459143770; ikey = "mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -596,7 +619,10 @@ Basic resolution 4, module type: ihash = 459143770; ikey = "mt_M.r_Root.p_None"}, N); ihash = 998243332; ikey = "m_N.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Signature @@ -629,15 +655,24 @@ Basic resolution 4, module type: t); ihash = 687003328; ikey = "t_t.m_N.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []}); + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}}); canonical = None; hidden = false})]; - compiled = true; removed = []; doc = []})}; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}})}; Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = {Odoc_model__Paths_types.iv = @@ -651,7 +686,8 @@ Basic resolution 4, module type: ihash = 818126955; ikey = "r_Root.p_None"}, A); ihash = 353272258; ikey = "m_A.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Path @@ -678,7 +714,10 @@ Basic resolution 4, module type: ihash = 353272258; ikey = "m_A.r_Root.p_None"}, N); ihash = 456955352; ikey = "m_N.m_A.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Signature @@ -693,34 +732,26 @@ Basic resolution 4, module type: ({Odoc_model__Paths_types.iv = `Module ({Odoc_model__Paths_types.iv = - `Root - (Some - {Odoc_model__Paths_types.iv - = `Page (None, None); - ihash = 236059787; - ikey = "p_None"}, - Root); - ihash = 818126955; - ikey = - "r_Root.p"... (* string length 13; truncated *)}, - ...); - ihash = ...; ikey = ...}, - ...); - ihash = ...; ikey = ...}, - ...); - ihash = ...; ikey = ...}; - source_loc = ...; doc = ...; canonical = ...; - equation = ...; representation = ...}); - ...]; - compiled = ...; removed = ...; doc = ...}); - canonical = ...; hidden = ...}); - ...]; - compiled = ...; removed = ...; doc = ...}); - p_path = ...}); - canonical = ...; hidden = ...}); - ...]; - compiled = ...; removed = ...; doc = ...}; - expansion = ...; linked = ...; source_loc = ...; canonical = ...} + `Root ...; ihash = ...; + ikey = ...}, + ...); + ihash = ...; ikey = ...}, + ...); + ihash = ...; ikey = ...}, + ...); + ihash = ...; ikey = ...}; + source_loc = ...; doc = ...; canonical = ...; + equation = ...; representation = ...}); + ...]; + compiled = ...; removed = ...; doc = ...}); + canonical = ...; hidden = ...}); + ...]; + compiled = ...; removed = ...; doc = ...}); + p_path = ...}); + canonical = ...; hidden = ...}); + ...]; + compiled = ...; removed = ...; doc = ...}; + expansion = ...; linked = ...; source_loc = ...; canonical = ...} ``` This example is rather more interesting: @@ -810,7 +841,9 @@ and then we can look up the type `t`. ihash = 818126955; ikey = "r_Root.p_None"}, M); ihash = 459143770; ikey = "mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -833,7 +866,11 @@ and then we can look up the type `t`. ihash = 459143770; ikey = "mt_M.r_Root.p_None"}, N); ihash = 887387323; ikey = "mt_N.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -866,13 +903,20 @@ and then we can look up the type `t`. t); ihash = 652783314; ikey = "t_t.mt_N.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []})}; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}})}; Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = @@ -892,7 +936,10 @@ and then we can look up the type `t`. ihash = 459143770; ikey = "mt_M.r_Root.p_None"}, B); ihash = 301928208; ikey = "m_B.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Path @@ -927,28 +974,24 @@ and then we can look up the type `t`. ikey = "m_B.mt_M.r_Root.p_None"}, t); ihash = 484865120; - ikey = "t_t.m_B.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + ikey = + "t_t.m_B.mt_M.r_Root.p_No"... (* string length 26; truncated *)}; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []}); - p_path = - `Resolved - (`Identifier - {Odoc_model__Paths_types.iv = - `ModuleType - ({Odoc_model__Paths_types.iv = - `ModuleType - ({Odoc_model__Paths_types.iv = - `Root ...; ihash = ...; ikey = ...}, - ...); - ihash = ...; ikey = ...}, - ...); - ihash = ...; ikey = ...})}); + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}}); + p_path = `Resolved (`Identifier ...)}); canonical = ...; hidden = ...}); ...]; compiled = ...; removed = ...; doc = ...})}; @@ -997,7 +1040,9 @@ and then we can look up the type `t`. ihash = 818126955; ikey = "r_Root.p_None"}, M); ihash = 459143770; ikey = "mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -1020,7 +1065,11 @@ and then we can look up the type `t`. ihash = 459143770; ikey = "mt_M.r_Root.p_None"}, N); ihash = 887387323; ikey = "mt_N.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -1053,13 +1102,20 @@ and then we can look up the type `t`. t); ihash = 652783314; ikey = "t_t.mt_N.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []})}; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}})}; Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = @@ -1079,7 +1135,10 @@ and then we can look up the type `t`. ihash = 459143770; ikey = "mt_M.r_Root.p_None"}, X); ihash = 573009176; ikey = "m_X.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Signature @@ -1112,7 +1171,10 @@ and then we can look up the type `t`. B); ihash = 413241446; ikey = "m_B.m_X.mt_M.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Path @@ -1126,23 +1188,7 @@ and then we can look up the type `t`. {Odoc_model__Paths_types.iv = `Type ({Odoc_model__Paths_types.iv = - `Module - ({Odoc_model__Paths_types.iv - = - `Module - ({Odoc_model__Paths_types.iv - = - `ModuleType - ({Odoc_model__Paths_types.iv - = ...; - ihash = ...; - ikey = ...}, - ...); - ihash = ...; - ikey = ...}, - ...); - ihash = ...; ikey = ...}, - ...); + `Module (...); ihash = ...; ikey = ...}, ...); ihash = ...; ikey = ...}; @@ -1205,7 +1251,9 @@ Ensure a substitution is taken into account during resolution: ihash = 818126955; ikey = "r_Root.p_None"}, A); ihash = 231492881; ikey = "mt_A.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -1229,7 +1277,10 @@ Ensure a substitution is taken into account during resolution: ihash = 231492881; ikey = "mt_A.r_Root.p_None"}, M); ihash = 564635453; ikey = "m_M.mt_A.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Signature @@ -1261,9 +1312,15 @@ Ensure a substitution is taken into account during resolution: S); ihash = 3092406; ikey = "mt_S.m_M.mt_A.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; - expr = None}]; - compiled = true; removed = []; doc = []}); + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; expr = None}]; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}}); canonical = None; hidden = false}); Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, @@ -1284,7 +1341,10 @@ Ensure a substitution is taken into account during resolution: ihash = 231492881; ikey = "mt_A.r_Root.p_None"}, N); ihash = 50158313; ikey = "m_N.mt_A.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Path @@ -1316,7 +1376,9 @@ Ensure a substitution is taken into account during resolution: ikey = "m_M.mt_A.r_Root.p_None"}, S)))}); canonical = None; hidden = false})]; - compiled = true; removed = []; doc = []})}; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}})}; Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = {Odoc_model__Paths_types.iv = @@ -1326,19 +1388,12 @@ Ensure a substitution is taken into account during resolution: (Some {Odoc_model__Paths_types.iv = `Page (None, None); ihash = 236059787; ikey = "p_None"}, - Root); - ihash = 818126955; - ikey = "r_Root.p_"... (* string length 13; truncated *)}, - B); - ihash = 814134997; - ikey = "m_B.r_Ro"... (* string length 17; truncated *)}; - source_loc = None; doc = []; - type_ = - Odoc_model.Lang.Module.ModuleType - (Odoc_model.Lang.ModuleType.Signature - {Odoc_model.Lang.Signature.items = ...; compiled = ...; - removed = ...; doc = ...}); - canonical = ...; hidden = ...}); + ...); + ihash = ...; ikey = ...}, + ...); + ihash = ...; ikey = ...}; + source_loc = ...; doc = ...; type_ = ...; canonical = ...; + hidden = ...}); ...]; compiled = ...; removed = ...; doc = ...}; expansion = ...; linked = ...; source_loc = ...; canonical = ...} @@ -1386,7 +1441,9 @@ Ensure a destructive substitution is taken into account during resolution: ihash = 818126955; ikey = "r_Root.p_None"}, A); ihash = 231492881; ikey = "mt_A.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -1410,7 +1467,10 @@ Ensure a destructive substitution is taken into account during resolution: ihash = 231492881; ikey = "mt_A.r_Root.p_None"}, M); ihash = 564635453; ikey = "m_M.mt_A.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Signature @@ -1442,9 +1502,15 @@ Ensure a destructive substitution is taken into account during resolution: S); ihash = 3092406; ikey = "mt_S.m_M.mt_A.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; - expr = None}]; - compiled = true; removed = []; doc = []}); + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; expr = None}]; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}}); canonical = None; hidden = false}); Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, @@ -1465,7 +1531,10 @@ Ensure a destructive substitution is taken into account during resolution: ihash = 231492881; ikey = "mt_A.r_Root.p_None"}, N); ihash = 50158313; ikey = "m_N.mt_A.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Path @@ -1497,7 +1566,9 @@ Ensure a destructive substitution is taken into account during resolution: ikey = "m_M.mt_A.r_Root.p_None"}, S)))}); canonical = None; hidden = false})]; - compiled = true; removed = []; doc = []})}; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}})}; Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = {Odoc_model__Paths_types.iv = @@ -1507,19 +1578,12 @@ Ensure a destructive substitution is taken into account during resolution: (Some {Odoc_model__Paths_types.iv = `Page (None, None); ihash = 236059787; ikey = "p_None"}, - Root); - ihash = 818126955; - ikey = "r_Root.p_"... (* string length 13; truncated *)}, - B); - ihash = 814134997; - ikey = "m_B.r_Ro"... (* string length 17; truncated *)}; - source_loc = None; doc = []; - type_ = - Odoc_model.Lang.Module.ModuleType - (Odoc_model.Lang.ModuleType.Signature - {Odoc_model.Lang.Signature.items = ...; compiled = ...; - removed = ...; doc = ...}); - canonical = ...; hidden = ...}); + ...); + ihash = ...; ikey = ...}, + ...); + ihash = ...; ikey = ...}; + source_loc = ...; doc = ...; type_ = ...; canonical = ...; + hidden = ...}); ...]; compiled = ...; removed = ...; doc = ...}; expansion = ...; linked = ...; source_loc = ...; canonical = ...} @@ -1562,7 +1626,8 @@ Resolve a module alias: ihash = 818126955; ikey = "r_Root.p_None"}, A); ihash = 353272258; ikey = "m_A.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Signature @@ -1586,12 +1651,18 @@ Resolve a module alias: ihash = 353272258; ikey = "m_A.r_Root.p_None"}, t); ihash = 394964294; ikey = "t_t.m_A.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []}); + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}}); canonical = None; hidden = false}); Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = @@ -1606,7 +1677,8 @@ Resolve a module alias: ihash = 818126955; ikey = "r_Root.p_None"}, B); ihash = 814134997; ikey = "m_B.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.Alias (`Resolved @@ -1637,7 +1709,9 @@ Resolve a module alias: ihash = 818126955; ikey = "r_Root.p_None"}, t); ihash = 1016576344; ikey = "t_t.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = @@ -1669,18 +1743,15 @@ Resolve a module alias: `Page (None, None); ihash = 236059787; ikey = "p_None"}, Root); - ihash = 818126955; - ikey = - "r_Root.p"... (* string length 13; truncated *)}, - B); - ihash = 814134997; - ikey = - "m_B.r_Ro"... (* string length 17; truncated *)}, - false)), - t)), - [])); - constraints = []}; - representation = None})]; + ihash = ...; ikey = ...}, + ...); + ihash = ...; ikey = ...}, + ...)), + ...)), + ...)); + constraints = ...}; + representation = ...}); + ...]; compiled = ...; removed = ...; doc = ...}; expansion = ...; linked = ...; source_loc = ...; canonical = ...} ``` @@ -1723,7 +1794,8 @@ Resolve a module alias: ihash = 818126955; ikey = "r_Root.p_None"}, A); ihash = 353272258; ikey = "m_A.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Signature @@ -1747,12 +1819,18 @@ Resolve a module alias: ihash = 353272258; ikey = "m_A.r_Root.p_None"}, t); ihash = 394964294; ikey = "t_t.m_A.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []}); + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}}); canonical = None; hidden = false}); Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = @@ -1767,7 +1845,8 @@ Resolve a module alias: ihash = 818126955; ikey = "r_Root.p_None"}, B); ihash = 814134997; ikey = "m_B.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.Alias (`Resolved @@ -1798,7 +1877,8 @@ Resolve a module alias: ihash = 818126955; ikey = "r_Root.p_None"}, C); ihash = 43786577; ikey = "m_C.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.Alias (`Resolved @@ -1826,22 +1906,18 @@ Resolve a module alias: `Page (None, None); ihash = 236059787; ikey = "p_None"}, Root); - ihash = 818126955; ikey = "r_Root.p_None"}, + ihash = 818126955; + ikey = + "r_Root.p"... (* string length 13; truncated *)}, B); ihash = 814134997; - ikey = - "m_B.r_Root.p"... (* string length 17; truncated *)}, + ikey = "m_B.r_Ro"... (* string length 17; truncated *)}, false))), None); - canonical = None; hidden = false}); - Odoc_model.Lang.Signature.Type (Odoc_model.Lang.Signature.Ordinary, - {Odoc_model.Lang.TypeDecl.id = - {Odoc_model__Paths_types.iv = `Type ...; ihash = ...; ikey = ...}; - source_loc = ...; doc = ...; canonical = ...; equation = ...; - representation = ...}); - ...]; - compiled = ...; removed = ...; doc = ...}; - expansion = ...; linked = ...; source_loc = ...; canonical = ...} + canonical = ...; hidden = ...}); + ...]; + compiled = ...; removed = ...; doc = ...}; + expansion = ...; linked = ...; source_loc = ...; canonical = ...} ``` Resolve a functor: @@ -1885,7 +1961,9 @@ Resolve a functor: ihash = 818126955; ikey = "r_Root.p_None"}, S); ihash = 527535255; ikey = "mt_S.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -1909,12 +1987,18 @@ Resolve a functor: ihash = 527535255; ikey = "mt_S.r_Root.p_None"}, t); ihash = 130637260; ikey = "t_t.mt_S.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []})}; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}})}; Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = {Odoc_model__Paths_types.iv = @@ -1928,7 +2012,8 @@ Resolve a functor: ihash = 818126955; ikey = "r_Root.p_None"}, F); ihash = 748202139; ikey = "m_F.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Functor @@ -1984,13 +2069,20 @@ Resolve a functor: t); ihash = 1065278958; ikey = "t_t.p_X.m_F.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []}); + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}}); p_path = `Resolved (`Identifier @@ -2003,22 +2095,12 @@ Resolve a functor: `Page (None, None); ihash = 236059787; ikey = "p_None"}, Root); - ihash = 818126955; ikey = "r_Root.p_None"}, + ihash = 818126955; + ikey = + "r_Root.p"... (* string length 13; truncated *)}, S); - ihash = 527535255; - ikey = - "mt_S.r_Root"... (* string length 18; truncated *)})}}, - Odoc_model.Lang.ModuleType.Functor - (Odoc_model.Lang.FunctorParameter.Named - {Odoc_model.Lang.FunctorParameter.id = - {Odoc_model__Paths_types.iv = - `Parameter - ({Odoc_model__Paths_types.iv = ...; ihash = ...; - ikey = ...}, - ...); - ihash = ...; ikey = ...}; - expr = ...}, - ...))); + ihash = 527535255; ikey = ...})}}, + ...)); canonical = ...; hidden = ...}); ...]; compiled = ...; removed = ...; doc = ...}; @@ -2088,7 +2170,9 @@ Resolve a functor: ihash = 818126955; ikey = "r_Root.p_None"}, S); ihash = 527535255; ikey = "mt_S.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -2112,12 +2196,18 @@ Resolve a functor: ihash = 527535255; ikey = "mt_S.r_Root.p_None"}, t); ihash = 130637260; ikey = "t_t.mt_S.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []})}; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}})}; Odoc_model.Lang.Signature.ModuleType {Odoc_model.Lang.ModuleType.id = {Odoc_model__Paths_types.iv = @@ -2131,7 +2221,9 @@ Resolve a functor: ihash = 818126955; ikey = "r_Root.p_None"}, S1); ihash = 289200525; ikey = "mt_S1.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Functor @@ -2187,13 +2279,20 @@ Resolve a functor: t); ihash = 993900890; ikey = "t_t.p__.mt_S1.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; equation = {Odoc_model.Lang.TypeDecl.Equation.params = []; private_ = false; manifest = None; constraints = []}; representation = None})]; - compiled = true; removed = []; doc = []}); + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}}); p_path = `Resolved (`Identifier @@ -2206,24 +2305,12 @@ Resolve a functor: `Page (None, None); ihash = 236059787; ikey = "p_None"}, Root); - ihash = 818126955; ikey = "r_Root.p_None"}, + ihash = 818126955; + ikey = + "r_Root.p"... (* string length 13; truncated *)}, S); - ihash = 527535255; - ikey = - "mt_S.r_Root"... (* string length 18; truncated *)})}}, - Odoc_model.Lang.ModuleType.Path - {Odoc_model.Lang.ModuleType.p_expansion = - Some - (Odoc_model.Lang.ModuleType.Signature - {Odoc_model.Lang.Signature.items = - [Odoc_model.Lang.Signature.Type - (Odoc_model.Lang.Signature.Ordinary, - {Odoc_model.Lang.TypeDecl.id = ...; source_loc = ...; - doc = ...; canonical = ...; equation = ...; - representation = ...}); - ...]; - compiled = ...; removed = ...; doc = ...}); - p_path = ...}))}; + ihash = 527535255; ikey = ...})}}, + ...))}; ...]; compiled = ...; removed = ...; doc = ...}; expansion = ...; linked = ...; source_loc = ...; canonical = ...} @@ -2310,7 +2397,9 @@ Functor app nightmare: ihash = 818126955; ikey = "r_Root.p_None"}, Type); ihash = 359972898; ikey = "mt_Type.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; + canonical = None; expr = Some (Odoc_model.Lang.ModuleType.Signature @@ -2333,8 +2422,14 @@ Functor app nightmare: ihash = 359972898; ikey = "mt_Type.r_Root.p_None"}, T); ihash = 1011869183; ikey = "mt_T.mt_Type.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; expr = None}]; - compiled = true; removed = []; doc = []})}; + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; expr = None}]; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; suppress_warnings = false}})}; Odoc_model.Lang.Signature.Module (Odoc_model.Lang.Signature.Ordinary, {Odoc_model.Lang.Module.id = {Odoc_model__Paths_types.iv = @@ -2348,7 +2443,8 @@ Functor app nightmare: ihash = 818126955; ikey = "r_Root.p_None"}, App); ihash = 855073208; ikey = "m_App.r_Root.p_None"}; - source_loc = None; doc = []; + source_loc = None; + doc = {Odoc_model__.Comment.elements = []; suppress_warnings = false}; type_ = Odoc_model.Lang.Module.ModuleType (Odoc_model.Lang.ModuleType.Functor @@ -2403,9 +2499,15 @@ Functor app nightmare: T); ihash = 167832761; ikey = "mt_T.p_T.m_App.r_Root.p_None"}; - source_loc = None; doc = []; canonical = None; - expr = None}]; - compiled = true; removed = []; doc = []}); + source_loc = None; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}; + canonical = None; expr = None}]; + compiled = true; removed = []; + doc = + {Odoc_model__.Comment.elements = []; + suppress_warnings = false}}); p_path = `Resolved (`Identifier @@ -2420,21 +2522,16 @@ Functor app nightmare: Root); ihash = 818126955; ikey = "r_Root.p_None"}, Type); - ihash = 359972898; ikey = "mt_Type.r_Root.p_None"})}}, + ihash = 359972898; + ikey = + "mt_Type.r_R"... (* string length 21; truncated *)})}}, Odoc_model.Lang.ModuleType.Functor (Odoc_model.Lang.FunctorParameter.Named {Odoc_model.Lang.FunctorParameter.id = {Odoc_model__Paths_types.iv = `Parameter - ({Odoc_model__Paths_types.iv = - `Result - {Odoc_model__Paths_types.iv = - `Module - ({Odoc_model__Paths_types.iv = `Root (...); - ihash = ...; ikey = ...}, - ...); - ihash = ...; ikey = ...}; - ihash = ...; ikey = ...}, + ({Odoc_model__Paths_types.iv = ...; ihash = ...; + ikey = ...}, ...); ihash = ...; ikey = ...}; expr = ...},