diff --git a/src/internal/core.rs b/src/internal/core.rs index f8ac91bb..ca598564 100644 --- a/src/internal/core.rs +++ b/src/internal/core.rs @@ -131,6 +131,11 @@ impl State { break; } Relation::AlmostSatisfied(package_almost) => { + // Add `package_almost` to the `unit_propagation_buffer` set. + // Putting items in `unit_propagation_buffer` more than once waste cycles, + // but so does checking for duplicates. + // In practice the most common pathology is adding the same package repeatedly. + // So we only check if it is duplicated with the last item. if self.unit_propagation_buffer.last() != Some(&package_almost) { self.unit_propagation_buffer.push(package_almost.clone()); }