diff --git a/src/Composer/DependencyResolver/Transaction.php b/src/Composer/DependencyResolver/Transaction.php index b847164ff..7c38d92fb 100644 --- a/src/Composer/DependencyResolver/Transaction.php +++ b/src/Composer/DependencyResolver/Transaction.php @@ -165,7 +165,9 @@ class Transaction $possibleRequires = $this->pool->whatProvides($link->getTarget(), $link->getConstraint()); foreach ($possibleRequires as $require) { - unset($roots[$require->id]); + if ($require !== $package) { + unset($roots[$require->id]); + } } } } diff --git a/tests/Composer/Test/Fixtures/installer/circular-dependency2.test b/tests/Composer/Test/Fixtures/installer/circular-dependency2.test index 162141daf..c89beef6b 100644 --- a/tests/Composer/Test/Fixtures/installer/circular-dependency2.test +++ b/tests/Composer/Test/Fixtures/installer/circular-dependency2.test @@ -23,10 +23,7 @@ Circular dependencies are possible between packages { "name": "regular/pkg", "version": "1.0.0", - "source": { "reference": "some.branch", "type": "git", "url": "" }, - "__dummy__require": { - "require/itself": "1.0.0" - } + "source": { "reference": "some.branch", "type": "git", "url": "" } } ] }