@@ -72,6 +72,17 @@ module Tools_error = struct
7272 (* Could not find the module in the environment *)
7373 | `Parent of parent_lookup_error ]
7474
75+ and simple_datatype_lookup_error =
76+ [ `LocalDataType of
77+ Env. t * Ident. path_datatype
78+ (* Internal error: Found local path during lookup *)
79+ | `Find_failure
80+ (* Internal error: the type was not found in the parent signature *)
81+ | `Lookup_failureT of
82+ Identifier.Path.Type. t
83+ (* Could not find the module in the environment *)
84+ | `Parent of parent_lookup_error ]
85+
7586 and simple_value_lookup_error =
7687 [ `LocalValue of
7788 Env. t * Ident. path_value
@@ -83,6 +94,17 @@ module Tools_error = struct
8394 (* Could not find the module in the environment *)
8495 | `Parent of parent_lookup_error ]
8596
97+ and simple_constructor_lookup_error =
98+ [ `LocalConstructor of
99+ Env. t * Ident. constructor
100+ (* Internal error: Found local path during lookup *)
101+ | `Find_failure
102+ (* Internal error: the type was not found in the parent signature *)
103+ | `Lookup_failureC of
104+ Identifier.Path.Constructor. t
105+ (* Could not find the module in the environment *)
106+ | `ParentC of simple_datatype_lookup_error ]
107+
86108 and parent_lookup_error =
87109 [ `Parent_sig of
88110 expansion_of_module_error
@@ -110,6 +132,8 @@ module Tools_error = struct
110132 type any =
111133 [ simple_type_lookup_error
112134 | simple_value_lookup_error
135+ | simple_constructor_lookup_error
136+ | simple_datatype_lookup_error
113137 | simple_module_type_lookup_error
114138 | simple_module_type_expr_of_module_error
115139 | simple_module_lookup_error
@@ -147,6 +171,10 @@ module Tools_error = struct
147171 | `LocalMT (_ , id ) -> Format. fprintf fmt " Local id found: %a" Ident. fmt id
148172 | `Local (_ , id ) -> Format. fprintf fmt " Local id found: %a" Ident. fmt id
149173 | `LocalType (_ , id ) -> Format. fprintf fmt " Local id found: %a" Ident. fmt id
174+ | `LocalDataType (_ , id ) ->
175+ Format. fprintf fmt " Local id found: %a" Ident. fmt id
176+ | `LocalConstructor (_ , id ) ->
177+ Format. fprintf fmt " Local id found: %a" Ident. fmt id
150178 | `LocalValue (_ , id ) ->
151179 Format. fprintf fmt " Local id found: %a" Ident. fmt id
152180 | `Find_failure -> Format. fprintf fmt " Find failure"
@@ -168,9 +196,14 @@ module Tools_error = struct
168196 Format. fprintf fmt " Lookup failure (value): %a"
169197 Component.Fmt. model_identifier
170198 (m :> Odoc_model.Paths.Identifier.t )
199+ | `Lookup_failureC m ->
200+ Format. fprintf fmt " Lookup failure (value): %a"
201+ Component.Fmt. model_identifier
202+ (m :> Odoc_model.Paths.Identifier.t )
171203 | `ApplyNotFunctor -> Format. fprintf fmt " Apply module is not a functor"
172204 | `Class_replaced -> Format. fprintf fmt " Class replaced"
173205 | `Parent p -> pp fmt (p :> any )
206+ | `ParentC p -> pp fmt (p :> any )
174207 | `UnexpandedTypeOf t ->
175208 Format. fprintf fmt " Unexpanded `module type of` expression: %a"
176209 Component.Fmt. module_type_type_of_desc t
@@ -206,7 +239,9 @@ let is_unexpanded_module_type_of =
206239 | `Find_failure -> false
207240 | `Lookup_failure _ -> false
208241 | `Lookup_failure_root _ -> false
242+ | `Lookup_failureC _ -> false
209243 | `Parent p -> inner (p :> any )
244+ | `ParentC p -> inner (p :> any )
210245 | `Parent_sig p -> inner (p :> any )
211246 | `Parent_module_type p -> inner (p :> any )
212247 | `Parent_expr p -> inner (p :> any )
@@ -224,6 +259,8 @@ let is_unexpanded_module_type_of =
224259 | `Lookup_failureT _ -> false
225260 | `Lookup_failureV _ -> false
226261 | `LocalType _ -> false
262+ | `LocalDataType _ -> false
263+ | `LocalConstructor _ -> false
227264 | `LocalValue _ -> false
228265 | `Class_replaced -> false
229266 | `OpaqueClass -> false
@@ -298,6 +335,7 @@ type what =
298335 | `Module of Identifier.Module .t
299336 | `Module_type of Identifier.Signature .t
300337 | `Module_path of Cpath .module_
338+ | `Constructor_path of Cpath .constructor
301339 | `Module_type_path of Cpath .module_type
302340 | `Module_type_U of Component.ModuleType .U .expr
303341 | `Include of Component.Include .decl
@@ -350,6 +388,7 @@ let report ~(what : what) ?tools_error action =
350388 | `Type cfrag -> r " type" type_fragment cfrag
351389 | `Type_path path -> r " type" type_path path
352390 | `Value_path path -> r " value" value_path path
391+ | `Constructor_path path -> r " constructor" constructor_path path
353392 | `Class_type_path path -> r " class_type" class_type_path path
354393 | `With_module frag -> r " module substitution" module_fragment frag
355394 | `With_module_type frag ->
0 commit comments