Commit f7f63ab4 authored by Committed by Mikhail GlushenkovBrowse files
Allow the solver to toggle manual flags to match constraints that have any qualifier.
This fixes #4299. The change gives the dependency solver the flexibility to link dependencies when the user has only set a manual flag on one of them. Previously, the solver would force the constrained dependency to have the flag value from the constraint and force the unconstrained dependency to have the default flag value. In cases where the single instance restriction required the dependencies to be linked, the solver couldn't find a solution. Qualified constraints can still be used to force different dependencies on a package to use different flag values. For example, "--constraint 'pkg +flag' --constraint 'pkg2:setup.pkg -flag'" turns the flag on for the top-level dependency and off for the setup dependency. I also stored flag default values in the search tree to simplify the code.