From b34f9164705c81c531c6d75be4e59350feb58a0d Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Thu, 25 Jun 2020 09:32:51 +0200 Subject: [PATCH] Solver: No need to check previous decision if we reached the first one --- src/Composer/DependencyResolver/Solver.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Composer/DependencyResolver/Solver.php b/src/Composer/DependencyResolver/Solver.php index 4ded368ba..5f1170ccf 100644 --- a/src/Composer/DependencyResolver/Solver.php +++ b/src/Composer/DependencyResolver/Solver.php @@ -417,12 +417,14 @@ class Solver } unset($literal); - $decision = $this->decisions->atOffset($decisionId-1); - if ($rule !== $decision[Decisions::DECISION_REASON] && $decision[Decisions::DECISION_REASON] instanceof MultiConflictRule) { - $num++; - foreach ($decision[Decisions::DECISION_REASON]->getLiterals() as $literal) { - if (!$this->decisions->satisfy($literal)) { - $seen[abs($literal)] = true; + if ($decisionId > 0) { + $decision = $this->decisions->atOffset($decisionId-1); + if ($rule !== $decision[Decisions::DECISION_REASON] && $decision[Decisions::DECISION_REASON] instanceof MultiConflictRule) { + $num++; + foreach ($decision[Decisions::DECISION_REASON]->getLiterals() as $literal) { + if (!$this->decisions->satisfy($literal)) { + $seen[abs($literal)] = true; + } } } }