diff --git a/src/loader/cmt.ml b/src/loader/cmt.ml index d3f0452b4f..36a3cfe13f 100644 --- a/src/loader/cmt.ml +++ b/src/loader/cmt.ml @@ -560,10 +560,13 @@ and read_include env parent incl = let container = (parent : Identifier.Signature.t :> Identifier.LabelParent.t) in let doc, status = Doc_attr.attached ~warnings_tag:env.warnings_tag Odoc_model.Semantics.Expect_status container incl.incl_attributes in let decl_modty = - match unwrap_module_expr_desc incl.incl_mod.mod_desc with - | Tmod_ident(p, _) -> + match unwrap_module_expr_desc incl.incl_mod.mod_desc, incl.incl_kind with + | Tmod_ident(p, _), Tincl_structure -> let p = Env.Path.read_module env.ident_env p in Some (ModuleType.U.TypeOf (ModuleType.StructInclude p, p)) + | _, (Tincl_functor _ | Tincl_gen_functor _) -> + (* TODO: Handle [include functor] *) + None | _ -> let mty = read_module_expr env parent container incl.incl_mod in umty_of_mty mty diff --git a/src/loader/cmti.ml b/src/loader/cmti.ml index 547fb062a6..023f0e1b2a 100644 --- a/src/loader/cmti.ml +++ b/src/loader/cmti.ml @@ -769,11 +769,12 @@ and read_include env parent incl = let expr = read_module_type env parent container incl.incl_mod in let umty = Odoc_model.Lang.umty_of_mty expr in let expansion = { content; shadowed; } in - match umty with - | Some uexpr -> + match umty, incl.incl_kind with + | Some uexpr, Tincl_structure -> let decl = Include.ModuleType uexpr in [Include {parent; doc; decl; expansion; status; strengthened=None; loc }] | _ -> + (* TODO: Handle [include functor] *) content.items and read_open env parent o =