Skip to content

Commit a7e6d72

Browse files
committed
Ensure pages of the current package can be referenced unqualified
1 parent c72dde1 commit a7e6d72

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/odoc/resolver.ml

+12-5
Original file line numberDiff line numberDiff line change
@@ -561,10 +561,9 @@ type roots = {
561561
}
562562

563563
let create ~important_digests ~directories ~open_modules ~roots =
564-
let ap = Accessible_paths.create ~directories in
565-
let pages, libs, current_dir =
564+
let pages, libs, current_dir, directories =
566565
match roots with
567-
| None -> (None, None, None)
566+
| None -> (None, None, None, directories)
568567
| Some { page_roots; lib_roots; current_lib; current_package; current_dir }
569568
->
570569
let prepare roots omit =
@@ -580,13 +579,21 @@ let create ~important_digests ~directories ~open_modules ~roots =
580579
{ Named_roots.name; dir; omit })
581580
roots
582581
in
582+
let directories =
583+
match current_package with
584+
| None -> directories
585+
| Some pkg -> (
586+
try List.assoc pkg page_roots :: directories
587+
with _ -> directories)
588+
in
583589
let omit = List.map snd lib_roots in
584-
let page_roots = prepare page_roots omit in
585590
let lib_roots = prepare lib_roots [] in
591+
let page_roots = prepare page_roots omit in
586592
let pages = Named_roots.create ~current_root:current_package page_roots
587593
and libs = Named_roots.create ~current_root:current_lib lib_roots in
588-
(Some pages, Some libs, Some current_dir)
594+
(Some pages, Some libs, Some current_dir, directories)
589595
in
596+
let ap = Accessible_paths.create ~directories in
590597
{ important_digests; ap; open_modules; pages; libs; current_dir }
591598

592599
(** Helpers for creating xref2 env. *)

0 commit comments

Comments
 (0)