From cfe894ce89b45adcf306c13f402c11a713c281f9 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 21 May 2025 09:04:52 +0200 Subject: [PATCH] Fix needless call to flex API on composer i --- src/PackageFilter.php | 6 +++--- tests/PackageFilterTest.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/PackageFilter.php b/src/PackageFilter.php index 8de0b500..96144b68 100644 --- a/src/PackageFilter.php +++ b/src/PackageFilter.php @@ -65,7 +65,7 @@ public function removeLegacyPackages(array $data, RootPackageInterface $rootPack $rootConstraints[$name] = $link->getConstraint(); } - $knownVersions = $this->getVersions(); + $knownVersions = null; $filteredPackages = []; $symfonyPackages = []; $oneSymfony = false; @@ -77,8 +77,8 @@ public function removeLegacyPackages(array $data, RootPackageInterface $rootPack } if ('symfony/symfony' !== $name && ( - !isset($knownVersions['splits'][$name]) - || array_intersect($versions, $lockedVersions[$name] ?? []) + array_intersect($versions, $lockedVersions[$name] ?? []) + || (($knownVersions ??= $this->getVersions()) && !isset($knownVersions['splits'][$name])) || (isset($rootConstraints[$name]) && !Intervals::haveIntersections($this->symfonyConstraints, $rootConstraints[$name])) || ('symfony/psr-http-message-bridge' === $name && 6.4 > $versions[0]) )) { diff --git a/tests/PackageFilterTest.php b/tests/PackageFilterTest.php index 0b7292e8..5793c6bf 100644 --- a/tests/PackageFilterTest.php +++ b/tests/PackageFilterTest.php @@ -32,7 +32,7 @@ class PackageFilterTest extends TestCase public function testRemoveLegacyPackages(array $expected, array $packages, string $symfonyRequire, array $versions, array $lockedPackages = []) { $downloader = $this->getMockBuilder('Symfony\Flex\Downloader')->disableOriginalConstructor()->getMock(); - $downloader->expects($this->once()) + $downloader->expects($this->any()) ->method('getVersions') ->willReturn($versions); $filter = new PackageFilter(new NullIO(), $symfonyRequire, $downloader);