• Andres Löh's avatar
    Fix handling of manual flags. · ca4f58d8
    Andres Löh authored
    This hopefully addresses issue #2280.
    The problem was as follows: In the modular solver, manual flags are
    enforced. However, in order to respect manual choices by the user,
    which are still allowed, we would first check if one of the two choices
    had already been disabled, and only if that's not the case, disable
    the non-default choice.
    However, a manual user constraint is not the only reason why the default
    flag choice can be disabled at this point. It can already be disabled
    in the validation phase, if it's immediately obvious to the solver at
    this point that it can never work. In such a situation (which is
    described in #2280), the solver would then fail to respect a manual
    flag and allow to change it without user intervention.
    The fix seems simple: we now explicitly check whether the flag choice
    has been disabled *by the user*, and only then leave it alone.
    Otherwise, we enforce the manual flag.
Preference.hs 12.8 KB