File tree Expand file tree Collapse file tree 2 files changed +12
-3
lines changed
Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Original file line number Diff line number Diff line change 88
99##### Bug Fixes
1010
11- * None.
11+ * Handle the case where an unwind occurs to a requirement that directly caused
12+ the current conflict but could also have been unwound to directly from
13+ previous conflicts. In this case, filtering must not remove any possibilities
14+ that could have avoided the previous conflicts (even if they would not avoid
15+ the current one).
16+ [ Grey Baker] ( https://github.com/greysteil )
1217
1318
1419## 0.6.2 (2017-08-25)
Original file line number Diff line number Diff line change @@ -461,11 +461,15 @@ def filter_possibilities_after_unwind(unwind_details)
461461 # @param [UnwindDetails] details of the conflict just unwound from
462462 # @return [void]
463463 def filter_possibilities_for_primary_unwind ( unwind_details )
464- all_requirements = unwind_details . conflicting_requirements
464+ unwinds_to_state = unused_unwind_options . select { |uw | uw . state_index == unwind_details . state_index }
465+ unwinds_to_state << unwind_details
466+ unwind_requirement_sets = unwinds_to_state . map ( &:conflicting_requirements )
465467
466468 state . possibilities . reject! do |possibility_set |
467469 possibility_set . possibilities . none? do |poss |
468- possibility_satisfies_requirements? ( poss , all_requirements )
470+ unwind_requirement_sets . any? do |requirements |
471+ possibility_satisfies_requirements? ( poss , requirements )
472+ end
469473 end
470474 end
471475 end
You can’t perform that action at this time.
0 commit comments