From ff620afe0585e9ad38ea5f74b50b18656308ce71 Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Sun, 19 Feb 2012 18:57:03 +0100 Subject: [PATCH] Correct the parent path in the watch tree, after moving a rule out of the path --- src/Composer/DependencyResolver/Solver.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Composer/DependencyResolver/Solver.php b/src/Composer/DependencyResolver/Solver.php index 1268a0040..e1d6575cd 100644 --- a/src/Composer/DependencyResolver/Solver.php +++ b/src/Composer/DependencyResolver/Solver.php @@ -1266,7 +1266,7 @@ class Solver } if ($prevRule) { - if ($prevRule->watch1 === $literal->getId()) { + if ($prevRule->next1 == $rule) { $prevRule->next1 = $nextRule; } else { $prevRule->next2 = $nextRule; @@ -1276,6 +1276,8 @@ class Solver } $this->watches[$ruleLiteral->getId()] = $rule; + + $rule = $prevRule; continue 2; } } @@ -1506,7 +1508,7 @@ class Solver } $why = count($this->learnedPool) - 1; - + assert($learnedLiterals[0] !== null); $newRule = new Rule($learnedLiterals, self::RULE_LEARNED, $why); return array($ruleLevel, $newRule, $why);