Fix finding replacers/providers to check constraints correctly
parent
2e82e34fe0
commit
20e4cc3b6f
|
@ -44,8 +44,19 @@ class InstalledRepository extends CompositeRepository
|
||||||
foreach ($this->getRepositories() as $repo) {
|
foreach ($this->getRepositories() as $repo) {
|
||||||
foreach ($repo->getPackages() as $candidate) {
|
foreach ($repo->getPackages() as $candidate) {
|
||||||
if (in_array($name, $candidate->getNames(), true)) {
|
if (in_array($name, $candidate->getNames(), true)) {
|
||||||
if (null === $constraint || $constraint->matches(new Constraint('==', $candidate->getVersion()))) {
|
if (null === $constraint) {
|
||||||
$matches[] = $candidate;
|
$matches[] = $candidate;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($name === $candidate->getName() && $constraint->matches(new Constraint('==', $candidate->getVersion()))) {
|
||||||
|
$matches[] = $candidate;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
foreach (array_merge($candidate->getProvides(), $candidate->getReplaces()) as $link) {
|
||||||
|
if ($name === $link->getTarget() && ($link->getConstraint() === null || $constraint->matches($link->getConstraint()))) {
|
||||||
|
$matches[] = $candidate;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue