diff --git a/src/solver/mod.rs b/src/solver/mod.rs index 5f1b813..9e792c9 100644 --- a/src/solver/mod.rs +++ b/src/solver/mod.rs @@ -215,19 +215,13 @@ impl> Sol // Exclusions are negative assertions, tracked outside of the watcher system self.negative_assertions.push((solvable_id, clause_id)); - // There might be a conflict now - let conflicts = if self.decision_tracker.assigned_value(solvable_id) - == Some(true) - { - vec![clause_id] - } else { - Vec::new() - }; - - // The new assertion should be kept in all cases (it is returned in the - // lhs of the tuple), and a conflicts should be reported if present (rhs - // of the tuple) - return Ok((vec![clause_id], conflicts)); + new_clauses.push(clause_id); + + if self.decision_tracker.assigned_value(solvable_id) == Some(true) { + conflicting_clauses.push(clause_id); + } + + continue; } } }