Closed
Description
Here is a test case where the solver can't find a solution:
grayjay@2b4d027
targets: A, B
constraints:
stanzas A test (unknown source)
stanzas B test (unknown source)
stanzas C test (unknown source)
stanzas D test (unknown source)
stanzas D test (unknown source)
stanzas E test (unknown source)
preferences:
strategy: PreferLatestForSelected
[__0] trying: 0.A-1.0.0 (user goal)
[__1] next goal: 0.D (dependency of 0.A-1.0.0)
[__1] rejecting: 0.D-2.0.0 (conflict: 0.A => 0.D==1.0.0)
[__1] trying: 0.D-1.0.0
[__2] trying: 0.C-1.0.0 (dependency of 0.A-1.0.0)
[__3] trying: 1.B-1.0.0 (user goal)
[__4] next goal: 1.D (dependency of 1.B-1.0.0)
[__4] rejecting: 1.D~>0.D-1.0.0 (conflict: 1.B => 1.D==2.0.0)
[__4] trying: 1.D-2.0.0
[__5] trying: 1.B-1.0.0:-flagA
[__6] trying: 1.B-1.0.0:-flagB
[__7] next goal: 1.C (dependency of 1.B-1.0.0:-flagB)
[__7] rejecting: 1.C~>0.C-1.0.0 (dependencies not linked: cannot merge {*1.D-2.0.0} and {*0.D-1.0.0}; conflict set: 0.D, 1.C, 1.D)
[__7] rejecting: 1.C-1.0.0 (multiple instances)
[__5] fail (backjumping, conflict set: 0.C, 0.D, 1.C, 1.D)
[__4] rejecting: 1.D-1.0.0 (multiple instances)
[__2] fail (backjumping, conflict set: 0.C, 0.D, 1.B, 1.C, 1.D)
[__0] fail (backjumping, conflict set: 0.A, 0.C, 0.D, 1.B, 1.C, 1.D)
I think that both conflict sets at level 7 should contain the variables flagA
and flagB
, because those flags are responsible for B's dependency on C.