diff --git a/src/Composer/DependencyResolver/RuleSetGenerator.php b/src/Composer/DependencyResolver/RuleSetGenerator.php index b710f16cf..74e316ce8 100644 --- a/src/Composer/DependencyResolver/RuleSetGenerator.php +++ b/src/Composer/DependencyResolver/RuleSetGenerator.php @@ -262,13 +262,14 @@ class RuleSetGenerator } } - protected function addRulesForRootAliases() + protected function addRulesForRootAliases($ignorePlatformReqs) { foreach ($this->pool->getPackages() as $package) { // if it is a root alias, make sure that if the aliased version gets installed // the alias must be installed too - if ($package instanceof AliasPackage && $package->isRootPackageAlias()) { + if ($package instanceof AliasPackage && $package->isRootPackageAlias() && isset($this->addedMap[$package->getAliasOf()->id])) { $this->addRule(RuleSet::TYPE_PACKAGE, $this->createRequireRule($package->getAliasOf(), array($package), Rule::RULE_PACKAGE_REQUIRES, $package->getAliasOf())); + $this->addRulesForPackage($package, $ignorePlatformReqs); } } } @@ -288,7 +289,7 @@ class RuleSetGenerator $this->addRulesForRequest($request, $ignorePlatformReqs); - $this->addRulesForRootAliases(); + $this->addRulesForRootAliases($ignorePlatformReqs); $this->addConflictRules($ignorePlatformReqs);