@@ -1768,31 +1768,29 @@ let solve_lock_dir
17681768 ~hints: [ Pp. text " add a conflict" ]
17691769 in
17701770 let lock_dir =
1771+ Package_name.Map. iter
1772+ pkgs_by_name
1773+ ~f: (fun { Lock_dir.Pkg. depends; info = { name; _ } ; _ } ->
1774+ Lock_dir.Conditional_choice. choose_for_platform depends ~platform: solver_env
1775+ |> Option. iter ~f: (fun depends ->
1776+ List. iter depends ~f: (fun { Lock_dir.Dependency. name = dep_name ; loc } ->
1777+ if Package_name.Map. mem local_packages dep_name
1778+ then
1779+ User_error. raise
1780+ ~loc
1781+ [ Pp. textf
1782+ " Dune does not support packages outside the workspace depending on \
1783+ packages in the workspace. The package %S is not in the workspace \
1784+ but it depends on the package %S which is in the workspace."
1785+ (Package_name. to_string name)
1786+ (Package_name. to_string dep_name)
1787+ ])));
17711788 let expanded_solver_variable_bindings =
17721789 let stats = Solver_stats.Updater. snapshot stats_updater in
17731790 Solver_stats.Expanded_variable_bindings. of_variable_set
17741791 stats.expanded_variables
17751792 solver_env
17761793 in
1777- Package_name.Map. iter
1778- pkgs_by_name
1779- ~f: (fun { Lock_dir.Pkg. depends; info = { name; _ } ; _ } ->
1780- Option. iter
1781- (Lock_dir.Conditional_choice. choose_for_platform depends ~platform: solver_env)
1782- ~f: (fun depends ->
1783- List. iter depends ~f: (fun { Lock_dir.Dependency. name = dep_name ; loc } ->
1784- if Package_name.Map. mem local_packages dep_name
1785- then
1786- User_error. raise
1787- ~loc
1788- [ Pp. textf
1789- " Dune does not support packages outside the workspace depending \
1790- on packages in the workspace. The package %S is not in the \
1791- workspace but it depends on the package %S which is in the \
1792- workspace."
1793- (Package_name. to_string name)
1794- (Package_name. to_string dep_name)
1795- ])));
17961794 Lock_dir. create_latest_version
17971795 pkgs_by_name
17981796 ~local_packages: (Package_name.Map. values local_packages)
0 commit comments