summaryrefslogtreecommitdiff
path: root/apt-pkg/solver3.cc
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg/solver3.cc')
-rw-r--r--apt-pkg/solver3.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/apt-pkg/solver3.cc b/apt-pkg/solver3.cc
index 2d9e92c99..8af3275eb 100644
--- a/apt-pkg/solver3.cc
+++ b/apt-pkg/solver3.cc
@@ -382,6 +382,15 @@ bool APT::Solver::Propagate()
for (auto &clause : (*this)[var].clauses)
if (not AddWork(Work{clause.get(), depth()}))
return false;
+ for (auto rclause : (*this)[var].rclauses)
+ {
+ if (not rclause->negative || rclause->optional || rclause->reason.empty())
+ continue;
+ if (unlikely(debug >= 3))
+ std::cerr << "Propagate " << var.toString(cache) << " to NOT " << rclause->reason.toString(cache) << " for dep " << const_cast<Clause *>(rclause)->toString(cache) << std::endl;
+ if (not Enqueue(rclause->reason, false, var))
+ return false;
+ }
}
else if ((*this)[var].decision == Decision::MUSTNOT)
{