Solver: Enforce dependencies on executables (fixes #4781).
This commit adds two checks to the validation phase of the solver: 1. It checks that each newly chosen package instance contains all executables that are required from that package so far. 2. It checks that each new build tool dependency that refers to a previously chosen package can be satisfied by the executables in that package. This commit also fixes a TODO related to solver log messages. Previously, it was possible for the log to associate an incorrect executable name with a dependency.
Showing
- cabal-install/Distribution/Solver/Modular/Message.hs 2 additions, 0 deletionscabal-install/Distribution/Solver/Modular/Message.hs
- cabal-install/Distribution/Solver/Modular/Tree.hs 2 additions, 0 deletionscabal-install/Distribution/Solver/Modular/Tree.hs
- cabal-install/Distribution/Solver/Modular/Validate.hs 113 additions, 44 deletionscabal-install/Distribution/Solver/Modular/Validate.hs
- cabal-install/tests/UnitTests/Distribution/Solver/Modular/Solver.hs 6 additions, 6 deletions...all/tests/UnitTests/Distribution/Solver/Modular/Solver.hs
Loading