Skip to content

Commit 7ee3bab

Browse files
committed
Fix backward compatibility
1 parent e52e074 commit 7ee3bab

File tree

5 files changed

+17
-12
lines changed

5 files changed

+17
-12
lines changed

src/Testing/PHPStanTestCase.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use PHPStan\Analyser\NodeScopeResolver;
99
use PHPStan\Analyser\RicherScopeGetTypeHelper;
1010
use PHPStan\Analyser\ScopeFactory;
11+
use PHPStan\Analyser\TypeSpecifier;
1112
use PHPStan\BetterReflection\Reflector\Reflector;
1213
use PHPStan\DependencyInjection\Container;
1314
use PHPStan\DependencyInjection\ContainerFactory;
@@ -129,16 +130,14 @@ public static function getClassReflectionExtensionRegistryProvider(): ClassRefle
129130
/**
130131
* @param string[] $dynamicConstantNames
131132
*/
132-
public static function createScopeFactory(array $dynamicConstantNames = []): ScopeFactory
133+
public static function createScopeFactory(ReflectionProvider $reflectionProvider, TypeSpecifier $typeSpecifier, array $dynamicConstantNames = []): ScopeFactory
133134
{
134135
$container = self::getContainer();
135136

136137
if (count($dynamicConstantNames) === 0) {
137138
$dynamicConstantNames = $container->getParameter('dynamicConstantNames');
138139
}
139140

140-
$reflectionProvider = self::createReflectionProvider();
141-
$typeSpecifier = self::getContainer()->getService('typeSpecifier');
142141
$reflectionProviderProvider = new DirectReflectionProviderProvider($reflectionProvider);
143142
$composerPhpVersionFactory = $container->getByType(ComposerPhpVersionFactory::class);
144143
$constantResolver = new ConstantResolver($reflectionProviderProvider, $dynamicConstantNames, null, $composerPhpVersionFactory, $container);

src/Testing/RuleTestCase.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ protected function createNodeScopeResolver(): NodeScopeResolver|GeneratorNodeSco
107107
$readWritePropertiesExtensions !== [] ? new DirectReadWritePropertiesExtensionProvider($readWritePropertiesExtensions) : self::getContainer()->getByType(ReadWritePropertiesExtensionProvider::class),
108108
self::getContainer()->getByType(ParameterClosureThisExtensionProvider::class),
109109
self::getContainer()->getByType(ParameterClosureTypeExtensionProvider::class),
110-
self::createScopeFactory(),
110+
self::createScopeFactory($reflectionProvider, $typeSpecifier),
111111
$this->shouldPolluteScopeWithLoopInitialAssignments(),
112112
$this->shouldPolluteScopeWithAlwaysIterableForeach(),
113113
self::getContainer()->getParameter('polluteScopeWithBlock'),
@@ -128,7 +128,10 @@ private function getAnalyser(DirectRuleRegistry $ruleRegistry): Analyser
128128
$nodeScopeResolver = $this->createNodeScopeResolver();
129129

130130
$fileAnalyser = new FileAnalyser(
131-
self::createScopeFactory(),
131+
self::createScopeFactory(
132+
$this->createReflectionProvider(),
133+
$this->getTypeSpecifier(),
134+
),
132135
self::getContainer()->getByType(GeneratorScopeFactory::class),
133136
$nodeScopeResolver,
134137
$this->getParser(),
@@ -276,7 +279,7 @@ private function gatherAnalyserErrorsWithDelayedErrors(array $files): array
276279
$ruleRegistry,
277280
new IgnoreErrorExtensionProvider(self::getContainer()),
278281
self::getContainer()->getByType(RuleErrorTransformer::class),
279-
self::createScopeFactory(),
282+
self::createScopeFactory($reflectionProvider, self::getContainer()->getService('typeSpecifier')),
280283
new LocalIgnoresProcessor(),
281284
true,
282285
);

src/Testing/TypeInferenceTestCase.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ protected static function createNodeScopeResolver(): NodeScopeResolver|Generator
8181
self::getContainer()->getByType(ReadWritePropertiesExtensionProvider::class),
8282
self::getContainer()->getByType(ParameterClosureThisExtensionProvider::class),
8383
self::getContainer()->getByType(ParameterClosureTypeExtensionProvider::class),
84-
self::createScopeFactory(),
84+
self::createScopeFactory($reflectionProvider, $typeSpecifier),
8585
self::getContainer()->getParameter('polluteScopeWithLoopInitialAssignments'),
8686
self::getContainer()->getParameter('polluteScopeWithAlwaysIterableForeach'),
8787
self::getContainer()->getParameter('polluteScopeWithBlock'),
@@ -102,7 +102,7 @@ protected static function createScope(
102102
array $dynamicConstantNames = [],
103103
): MutatingScope
104104
{
105-
$scopeFactory = self::createScopeFactory($dynamicConstantNames);
105+
$scopeFactory = self::createScopeFactory(self::createReflectionProvider(), self::getContainer()->getService('typeSpecifier'), $dynamicConstantNames);
106106
return $scopeFactory->create(ScopeContext::create($file));
107107
}
108108

tests/PHPStan/Analyser/AnalyserTest.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,10 @@ private function runAnalyser(
771771
new DirectRuleRegistry([]),
772772
new IgnoreErrorExtensionProvider(new NetteContainer(new Container([]))),
773773
self::getContainer()->getByType(RuleErrorTransformer::class),
774-
self::createScopeFactory(),
774+
$this->createScopeFactory(
775+
self::createReflectionProvider(),
776+
self::getContainer()->getService('typeSpecifier'),
777+
),
775778
new LocalIgnoresProcessor(),
776779
$reportUnmatchedIgnoredErrors,
777780
);
@@ -824,7 +827,7 @@ private function createAnalyser(): Analyser
824827
self::getContainer()->getByType(ReadWritePropertiesExtensionProvider::class),
825828
self::getContainer()->getByType(ParameterClosureThisExtensionProvider::class),
826829
self::getContainer()->getByType(ParameterClosureTypeExtensionProvider::class),
827-
self::createScopeFactory(),
830+
self::createScopeFactory($reflectionProvider, $typeSpecifier),
828831
false,
829832
true,
830833
true,
@@ -837,7 +840,7 @@ private function createAnalyser(): Analyser
837840
);
838841
$lexer = new Lexer();
839842
$fileAnalyser = new FileAnalyser(
840-
self::createScopeFactory(),
843+
self::createScopeFactory($reflectionProvider, $typeSpecifier),
841844
self::getContainer()->getByType(GeneratorScopeFactory::class),
842845
$nodeScopeResolver,
843846
new RichParser(

tests/PHPStan/Analyser/TypeSpecifierTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ protected function setUp(): void
6464
$reflectionProvider = self::createReflectionProvider();
6565
$this->printer = new Printer();
6666
$this->typeSpecifier = self::getContainer()->getService('typeSpecifier');
67-
$this->scope = self::createScopeFactory()->create(ScopeContext::create(''));
67+
$this->scope = self::createScopeFactory($reflectionProvider, $this->typeSpecifier)->create(ScopeContext::create(''));
6868
$this->scope = $this->scope->enterClass($reflectionProvider->getClass('DateTime'));
6969
$this->scope = $this->scope->assignVariable('bar', new ObjectType('Bar'), new ObjectType('Bar'), TrinaryLogic::createYes());
7070
$this->scope = $this->scope->assignVariable('stringOrNull', new UnionType([new StringType(), new NullType()]), new UnionType([new StringType(), new NullType()]), TrinaryLogic::createYes());

0 commit comments

Comments
 (0)