Closed
Description
Minimal example and triggered assertion:
type t = int option
let rec f ?(optional : t) () = f ?optional ()
and g () = f ?optional:(Some 1) ()
> dune build @doc
odoc: internal error, uncaught exception:
File "src/loader/cmi.ml", line 420, characters 21-27: Assertion failed
Raised at Odoc_loader__Cmi.read_type_expr in file "src/loader/cmi.ml", line 420, characters 21-33
Called from Odoc_loader__Cmt.read_pattern in file "src/loader/cmt.ml", line 40, characters 22-57
Called from Odoc_loader__Cmt.read_value_bindings.(fun) in file "src/loader/cmt.ml", line 92, characters 18-50
Called from Stdlib__List.fold_left in file "list.ml", line 121, characters 24-34
Called from Odoc_loader__Cmt.read_value_bindings in file "src/loader/cmt.ml", line 86, characters 4-360
Called from Odoc_loader__Cmt.read_structure.(fun) in file "src/loader/cmt.ml", line 583, characters 24-61
Called from Stdlib__List.fold_left in file "list.ml", line 121, characters 24-34
Called from Odoc_loader__Cmt.read_structure in file "src/loader/cmt.ml", line 581, characters 4-127
Called from Odoc_loader__Cmt.read_implementation in file "src/loader/cmt.ml", line 596, characters 4-74
Called from Odoc_loader.read_cmt in file "src/loader/odoc_loader.ml", line 145, characters 34-74
Called from Odoc_loader.wrap_errors.(fun) in file "src/loader/odoc_loader.ml", line 164, characters 10-14
Called from Odoc_model__Error.catch in file "src/model/error.ml", line 54, characters 21-27
Called from Odoc_model__Error.catch_warnings.(fun) in file "src/model/error.ml", line 89, characters 18-22
Called from Odoc_model__Error.with_ref in file "src/model/error.ml", line 67, characters 12-16
Re-raised at Odoc_model__Error.with_ref in file "src/model/error.ml", line 72, characters 4-11
Called from Odoc_odoc__Compile.resolve_and_substitute in file "src/odoc/compile.ml", line 87, characters 4-31
Called from Odoc_model__Error.catch in file "src/model/error.ml", line 54, characters 21-27
Called from Odoc_model__Error.catch_warnings.(fun) in file "src/model/error.ml", line 89, characters 18-22
Called from Odoc_model__Error.with_ref in file "src/model/error.ml", line 67, characters 12-16
Re-raised at Odoc_model__Error.with_ref in file "src/model/error.ml", line 72, characters 4-11
Called from Odoc_odoc__Compile.compile.(fun) in file "src/odoc/compile.ml", line 239, characters 6-136
Called from Cmdliner_term.app.(fun) in file "cmdliner_term.ml", line 24, characters 19-24
Called from Cmdliner_term.app.(fun) in file "cmdliner_term.ml", line 22, characters 12-19
Called from Cmdliner_eval.run_parser in file "cmdliner_eval.ml", line 34, characters 37-44
> dune --version
3.10.0
> odoc --version
2.2.1
Type annotations avoid hitting the assertion:
type t = int option
let rec f ?(optional : t) () = (f : ?optional:int -> unit -> unit) ?optional ()
and g () = (f : ?optional:int -> unit -> unit) ?optional:(Some 1) ()
Metadata
Metadata
Assignees
Labels
No labels