Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 42ebc98

Browse files
Fix TestCaseSourceLocatorFactory
1 parent 9018681 commit 42ebc98

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

‎src/Testing/TestCaseSourceLocatorFactory.php‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@
1616
use PHPStan\Reflection\BetterReflection\SourceLocator\AutoloadSourceLocator;
1717
use PHPStan\Reflection\BetterReflection\SourceLocator\ComposerJsonAndInstalledJsonSourceLocatorMaker;
1818
use PHPStan\Reflection\BetterReflection\SourceLocator\FileNodesFetcher;
19+
use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedSingleFileSourceLocatorRepository;
1920
use PHPStan\Reflection\BetterReflection\SourceLocator\PhpVersionBlacklistSourceLocator;
2021
use ReflectionClass;
2122
use function dirname;
2223
use function is_file;
2324
use function serialize;
2425
use function sha1;
26+
use const PHP_VERSION_ID;
2527

2628
final class TestCaseSourceLocatorFactory
2729
{
@@ -35,6 +37,7 @@ final class TestCaseSourceLocatorFactory
3537
*/
3638
public function __construct(
3739
private ComposerJsonAndInstalledJsonSourceLocatorMaker $composerJsonAndInstalledJsonSourceLocatorMaker,
40+
private OptimizedSingleFileSourceLocatorRepository $optimizedSingleFileSourceLocatorRepository,
3841
private Parser $phpParser,
3942
private Parser $php8Parser,
4043
private FileNodesFetcher $fileNodesFetcher,
@@ -57,7 +60,13 @@ public function create(): SourceLocator
5760
$this->excludePaths,
5861
]));
5962
if ($classLoaderReflection->hasProperty('vendorDir') && ! isset(self::$composerSourceLocatorsCache[$cacheKey])) {
60-
$composerLocators = [];
63+
$composerLocators = [
64+
$this->optimizedSingleFileSourceLocatorRepository->getOrCreate(
65+
PHP_VERSION_ID < 80500
66+
? __DIR__ . '/../../stubs/runtime/Attribute84.php'
67+
: __DIR__ . '/../../stubs/runtime/Attribute85.php',
68+
),
69+
];
6170
$vendorDirProperty = $classLoaderReflection->getProperty('vendorDir');
6271
$vendorDirProperty->setAccessible(true);
6372
foreach ($classLoaders as $classLoader) {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /