Skip to content

Commit 8fe16e3

Browse files
committed
feature: add locations to dependencies
This improves the error messages for the unused libray check Signed-off-by: Rudi Grinberg <me@rgrinberg.com>
1 parent a9a399e commit 8fe16e3

File tree

20 files changed

+155
-111
lines changed

20 files changed

+155
-111
lines changed

bin/describe/describe_workspace.ml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,9 @@ module Crawl = struct
428428
let+ requires =
429429
let* compile_info = Exe_rules.compile_info ~scope exes in
430430
let open Resolve.Memo.O in
431-
let* requires = Lib.Compile.direct_requires compile_info in
431+
let* requires =
432+
Lib.Compile.direct_requires compile_info |> Resolve.Memo.map ~f:Loc.L.drop
433+
in
432434
if options.with_pps
433435
then
434436
let+ pps = Lib.Compile.pps compile_info in

otherlibs/stdune/src/loc.ml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,3 +159,8 @@ let rec render ppf pp =
159159
Pp.to_fmt_with_tags ppf pp ~tag_handler:(fun ppf Loc pp ->
160160
Format.fprintf ppf "@{<loc>%a@}" render pp)
161161
;;
162+
163+
module L = struct
164+
let drop x = List.map ~f:snd x
165+
let add_none x = List.map ~f:(fun x -> none, x) x
166+
end

otherlibs/stdune/src/loc.mli

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,11 @@ val on_same_line : t -> t -> bool
2727
val compare : t -> t -> Ordering.t
2828
val span : t -> t -> t
2929
val set_start_to_stop : t -> t
30+
31+
module L : sig
32+
type loc := t
33+
type 'a t := (loc * 'a) list
34+
35+
val drop : 'a t -> 'a list
36+
val add_none : 'a list -> 'a t
37+
end

src/dune_rules/bootstrap_info.ml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ let include_subdirs dir_contents =
6262
let make_root_module sctx ~name compile_info =
6363
let open Action_builder.O in
6464
let+ entries =
65-
let requires_compile = Lib.Compile.direct_requires compile_info in
65+
let requires_compile =
66+
Lib.Compile.direct_requires compile_info |> Resolve.Memo.map ~f:Loc.L.drop
67+
in
6668
Root_module.entries sctx ~requires_compile
6769
in
6870
{ Root_module_data.name; entries }

src/dune_rules/cinaps.ml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,9 @@ let gen_rules sctx t ~dir ~scope =
163163
in
164164
Pp_spec.pp_module preprocess module_ >>| Modules.With_vlib.singleton_exe
165165
in
166-
let requires_compile = Lib.Compile.direct_requires compile_info in
166+
let requires_compile =
167+
Lib.Compile.direct_requires compile_info |> Resolve.Memo.map ~f:Loc.L.drop
168+
in
167169
let requires_link = Lib.Compile.requires_link compile_info in
168170
let obj_dir = Obj_dir.make_exe ~dir:cinaps_dir ~name in
169171
Compilation_context.create

src/dune_rules/exe_rules.ml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,9 @@ let executables_rules
182182
in
183183
let programs = programs ~modules ~exes in
184184
let* cctx =
185-
let requires_compile = Lib.Compile.direct_requires compile_info in
185+
let requires_compile =
186+
Lib.Compile.direct_requires compile_info |> Resolve.Memo.map ~f:Loc.L.drop
187+
in
186188
let requires_link = Lib.Compile.requires_link compile_info in
187189
let instances =
188190
Parameterised_rules.instances ~sctx ~db:(Scope.libs scope) exes.buildable.libraries

0 commit comments

Comments
 (0)