diff --git a/doc/changes/12530.md b/doc/changes/12530.md new file mode 100644 index 00000000000..e16b065db57 --- /dev/null +++ b/doc/changes/12530.md @@ -0,0 +1,2 @@ +- `(include_subdirs qualified)`: Add missing alias dependency to module group. + (#12530, @anmonteiro) diff --git a/src/dune_rules/modules.ml b/src/dune_rules/modules.ml index c952c7abbf9..9055bcdf7c9 100644 --- a/src/dune_rules/modules.ml +++ b/src/dune_rules/modules.ml @@ -457,7 +457,7 @@ module Group = struct Module_name.Map.values g.modules |> List.concat_map ~f:closure_node in lib_interface :: closure - | _ -> [ lib_interface ] + | _ -> [ g.alias; lib_interface ] and closure_node = function | Module m -> [ m ] diff --git a/test/blackbox-tests/test-cases/include-qualified/build-with-sandbox.t b/test/blackbox-tests/test-cases/include-qualified/build-with-sandbox.t index 6a2651b9c70..9de11681893 100644 --- a/test/blackbox-tests/test-cases/include-qualified/build-with-sandbox.t +++ b/test/blackbox-tests/test-cases/include-qualified/build-with-sandbox.t @@ -42,10 +42,13 @@ Transitive deps file includes the alias module > let hello = "hello from sub" > EOF - $ DUNE_SANDBOX=none dune build $ DUNE_SANDBOX=symlink dune build - File "lib/bar.ml", line 1, characters 12-27: - 1 | let hello = Sub.Hello.hello ^ Sub.world - ^^^^^^^^^^^^^^^ - Error: The module Sub.Hello is an alias for module Foo__Sub__.Hello, which is missing - [1] + + $ cat _build/default/lib/.foo.objs/foo__Bar.impl.d + lib/bar.ml: Sub + $ cat _build/default/lib/.foo.objs/foo__Bar.impl.all-deps + foo__Sub + foo__Sub__ + foo__Sub__Hello + +