Skip to content

Commit 3e40fdc

Browse files
committed
fix after review
Signed-off-by: ArthurW <[email protected]>
1 parent dcb3793 commit 3e40fdc

File tree

6 files changed

+24
-12
lines changed

6 files changed

+24
-12
lines changed

src/dune_rules/compilation_context.ml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ let singleton_modules m =
7878
{ modules = Modules.With_vlib.singleton m; dep_graphs = Dep_graph.Ml_kind.dummy m }
7979
;;
8080

81+
type implements_parameter =
82+
{ main_module : Module_name.t
83+
; implements_parameter : Module_name.t option Resolve.Memo.t
84+
}
85+
8186
type t =
8287
{ super_context : Super_context.t
8388
; scope : Scope.t
@@ -87,7 +92,7 @@ type t =
8792
; requires_compile : Lib.t list Resolve.Memo.t
8893
; requires_hidden : Lib.t list Resolve.Memo.t
8994
; requires_link : Lib.t list Resolve.t Memo.Lazy.t
90-
; implements_parameter : (Module_name.t * Module_name.t option Resolve.Memo.t) option
95+
; implements_parameter : implements_parameter option
9196
; includes : Includes.t
9297
; preprocessing : Pp_spec.t
9398
; opaque : bool
@@ -131,7 +136,8 @@ let ocaml t = t.ocaml
131136

132137
let implements_parameter t m =
133138
match t.implements_parameter with
134-
| Some (root, implements) when Module_name.equal root (Module.name m) -> implements
139+
| Some { main_module; implements_parameter }
140+
when Module_name.equal main_module (Module.name m) -> implements_parameter
135141
| _ -> Resolve.Memo.return None
136142
;;
137143

src/dune_rules/compilation_context.mli

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ type opaque =
1818
| Explicit of bool (** Set directly by the caller *)
1919
| Inherit_from_settings (** Determined from the version of OCaml and the profile *)
2020

21+
type implements_parameter =
22+
{ main_module : Module_name.t
23+
; implements_parameter : Module_name.t option Resolve.Memo.t
24+
}
25+
2126
(** Create a compilation context. *)
2227
val create
2328
: super_context:Super_context.t
@@ -27,7 +32,7 @@ val create
2732
-> flags:Ocaml_flags.t
2833
-> requires_compile:Lib.t list Resolve.Memo.t
2934
-> requires_link:Lib.t list Resolve.t Memo.Lazy.t
30-
-> ?implements_parameter:Module_name.t * Module_name.t option Resolve.Memo.t
35+
-> ?implements_parameter:implements_parameter
3136
-> ?preprocessing:Pp_spec.t
3237
-> opaque:opaque
3338
-> ?stdlib:Ocaml_stdlib.t

src/dune_rules/install_rules.ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,13 @@ end = struct
100100
match Lib_info.kind lib with
101101
| Dune_file _ ->
102102
Memo.return (Mode.Map.Multi.to_flat_list @@ Lib_info.foreign_archives lib)
103-
| Parameter | Virtual ->
103+
| Virtual ->
104104
let+ foreign_sources = Dir_contents.foreign_sources dir_contents in
105105
let name = Lib_info.name lib in
106106
let files = Foreign_sources.for_lib foreign_sources ~name in
107107
let { Lib_config.ext_obj; _ } = lib_config in
108108
Foreign.Sources.object_files files ~dir ~ext_obj
109+
| Parameter -> Memo.return []
109110
in
110111
List.rev_append
111112
(List.rev_concat_map

src/dune_rules/lib_rules.ml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -507,8 +507,11 @@ let cctx (lib : Library.t) ~sctx ~source_modules ~dir ~expander ~scope ~compile_
507507
let vlib = Vimpl.vlib vimpl in
508508
(match Lib_info.kind (Lib.info vlib) with
509509
| Parameter ->
510-
let root_module = Module_name.of_local_lib_name lib.name in
511-
Some (root_module, Lib.main_module_name vlib)
510+
let main_module = Module_name.of_local_lib_name lib.name in
511+
Some
512+
{ Compilation_context.main_module
513+
; implements_parameter = Lib.main_module_name vlib
514+
}
512515
| _ -> None)
513516
in
514517
let modules = Vimpl.impl_modules vimpl modules in

src/dune_rules/ml_sources.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ let make_lib_modules
368368
| Dune_file _, None -> Exe_or_normal_lib
369369
| Parameter, None -> Parameter
370370
| Virtual, Some virtual_modules -> Virtual { virtual_modules }
371-
| _ -> assert false
371+
| (Dune_file _ | Parameter), Some _ | Virtual, None -> assert false
372372
in
373373
Memo.return (Resolve.return (kind, main_module_name, wrapped))
374374
| Some _ ->

src/dune_rules/module.ml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ let map_files t ~f =
288288
let src_dir t = Source.src_dir t.source
289289
let set_pp t pp = { t with pp }
290290

291-
let to_dyn { source; obj_name; pp; visibility; kind; install_as; _ } =
291+
let to_dyn { source; obj_name; pp; visibility; kind; install_as } =
292292
Dyn.record
293293
[ "source", Source.to_dyn source
294294
; "obj_name", Module_name.Unique.to_dyn obj_name
@@ -345,10 +345,7 @@ module Obj_map = struct
345345
end)
346346
end
347347

348-
let encode
349-
({ source; obj_name; pp = _; visibility; kind; install_as = _; _ } as t)
350-
~src_dir
351-
=
348+
let encode ({ source; obj_name; pp = _; visibility; kind; install_as = _ } as t) ~src_dir =
352349
let open Dune_lang.Encoder in
353350
let has_impl = has t ~ml_kind:Impl in
354351
let kind =

0 commit comments

Comments
 (0)