Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 19 additions & 18 deletions src/Testing/TypeInferenceTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,33 +56,34 @@ abstract class TypeInferenceTestCase extends PHPStanTestCase
protected static function createNodeScopeResolver(): NodeScopeResolver|GeneratorNodeScopeResolver
{
$reflectionProvider = self::createReflectionProvider();
$typeSpecifier = self::getContainer()->getService('typeSpecifier');
$container = self::getContainer();
$typeSpecifier = $container->getService('typeSpecifier');

return new NodeScopeResolver(
$reflectionProvider,
self::getContainer()->getByType(InitializerExprTypeResolver::class),
$container->getByType(InitializerExprTypeResolver::class),
self::getReflector(),
self::getContainer()->getByType(ClassReflectionFactory::class),
self::getContainer()->getByType(ParameterOutTypeExtensionProvider::class),
$container->getByType(ClassReflectionFactory::class),
$container->getByType(ParameterOutTypeExtensionProvider::class),
self::getParser(),
self::getContainer()->getByType(FileTypeMapper::class),
self::getContainer()->getByType(PhpVersion::class),
self::getContainer()->getByType(PhpDocInheritanceResolver::class),
self::getContainer()->getByType(FileHelper::class),
$container->getByType(FileTypeMapper::class),
$container->getByType(PhpVersion::class),
$container->getByType(PhpDocInheritanceResolver::class),
$container->getByType(FileHelper::class),
$typeSpecifier,
self::getContainer()->getByType(DynamicThrowTypeExtensionProvider::class),
self::getContainer()->getByType(ReadWritePropertiesExtensionProvider::class),
self::getContainer()->getByType(ParameterClosureThisExtensionProvider::class),
self::getContainer()->getByType(ParameterClosureTypeExtensionProvider::class),
$container->getByType(DynamicThrowTypeExtensionProvider::class),
$container->getByType(ReadWritePropertiesExtensionProvider::class),
$container->getByType(ParameterClosureThisExtensionProvider::class),
$container->getByType(ParameterClosureTypeExtensionProvider::class),
self::createScopeFactory($reflectionProvider, $typeSpecifier),
self::getContainer()->getParameter('polluteScopeWithLoopInitialAssignments'),
self::getContainer()->getParameter('polluteScopeWithAlwaysIterableForeach'),
self::getContainer()->getParameter('polluteScopeWithBlock'),
$container->getParameter('polluteScopeWithLoopInitialAssignments'),
$container->getParameter('polluteScopeWithAlwaysIterableForeach'),
$container->getParameter('polluteScopeWithBlock'),
static::getEarlyTerminatingMethodCalls(),
static::getEarlyTerminatingFunctionCalls(),
self::getContainer()->getParameter('exceptions')['implicitThrows'],
self::getContainer()->getParameter('treatPhpDocTypesAsCertain'),
self::getContainer()->getParameter('narrowMethodScopeFromConstructor'),
$container->getParameter('exceptions')['implicitThrows'],
$container->getParameter('treatPhpDocTypesAsCertain'),
$container->getParameter('narrowMethodScopeFromConstructor'),
);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,9 +180,10 @@ public function testRule(callable $ruleCallback, array $expectedErrors): void

protected function createNodeScopeResolver(): GeneratorNodeScopeResolver
{
$container = self::getContainer();
return new GeneratorNodeScopeResolver(
self::getContainer()->getByType(ExprPrinter::class),
self::getContainer(),
$container->getByType(ExprPrinter::class),
$container,
);
}

Expand Down
5 changes: 3 additions & 2 deletions tests/PHPStan/Rules/Classes/ClassAttributesRuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class ClassAttributesRuleTest extends RuleTestCase
protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();
$container = self::getContainer();
return new ClassAttributesRule(
new AttributesCheck(
$reflectionProvider,
Expand All @@ -43,9 +44,9 @@ protected function getRule(): Rule
),
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, false),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
true,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class ClassConstantAttributesRuleTest extends RuleTestCase
protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();
$container = self::getContainer();
return new ClassConstantAttributesRule(
new AttributesCheck(
$reflectionProvider,
Expand All @@ -38,9 +39,9 @@ protected function getRule(): Rule
),
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, false),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
true,
),
Expand Down
5 changes: 3 additions & 2 deletions tests/PHPStan/Rules/Classes/ClassConstantRuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,15 @@ class ClassConstantRuleTest extends RuleTestCase
protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();
$container = self::getContainer();
return new ClassConstantRule(
$reflectionProvider,
new RuleLevelHelper($reflectionProvider, true, false, true, true, true, false, true),
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
new PhpVersion($this->phpVersion),
true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@ class ExistingClassInClassExtendsRuleTest extends RuleTestCase
protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();
$container = self::getContainer();
return new ExistingClassInClassExtendsRule(
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
$reflectionProvider,
true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,14 @@ class ExistingClassInInstanceOfRuleTest extends RuleTestCase
protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();
$container = self::getContainer();
return new ExistingClassInInstanceOfRule(
$reflectionProvider,
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
true,
true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@ class ExistingClassInTraitUseRuleTest extends RuleTestCase
protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();
$container = self::getContainer();
return new ExistingClassInTraitUseRule(
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
$reflectionProvider,
true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@ class ExistingClassesInClassImplementsRuleTest extends RuleTestCase
protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();
$container = self::getContainer();
return new ExistingClassesInClassImplementsRule(
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
$reflectionProvider,
true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@ protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();

$container = self::getContainer();
return new ExistingClassesInEnumImplementsRule(
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
$reflectionProvider,
true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@ class ExistingClassesInInterfaceExtendsRuleTest extends RuleTestCase
protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();
$container = self::getContainer();
return new ExistingClassesInInterfaceExtendsRule(
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
$reflectionProvider,
true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,16 @@ class ForbiddenNameCheckExtensionRuleTest extends RuleTestCase
protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();
$container = self::getContainer();
return new InstantiationRule(
self::getContainer(),
$container,
$reflectionProvider,
new FunctionCallParametersCheck(new RuleLevelHelper($reflectionProvider, true, false, true, false, false, false, true), new NullsafeCheck(), new UnresolvableTypeHelper(), new PropertyReflectionFinder(), true, true, true, true),
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
new ConsistentConstructorHelper(),
true,
Expand Down
7 changes: 4 additions & 3 deletions tests/PHPStan/Rules/Classes/InstantiationRuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,16 @@ class InstantiationRuleTest extends RuleTestCase
protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();
$container = self::getContainer();
return new InstantiationRule(
self::getContainer(),
$container,
$reflectionProvider,
new FunctionCallParametersCheck(new RuleLevelHelper($reflectionProvider, true, false, true, false, false, false, true), new NullsafeCheck(), new UnresolvableTypeHelper(), new PropertyReflectionFinder(), true, true, true, true),
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
new ConsistentConstructorHelper(),
true,
Expand Down
7 changes: 4 additions & 3 deletions tests/PHPStan/Rules/Classes/LocalTypeAliasesRuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,18 @@ protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();

$container = self::getContainer();
return new LocalTypeAliasesRule(
new LocalTypeAliasesCheck(
['GlobalTypeAlias' => 'int|string'],
self::createReflectionProvider(),
self::getContainer()->getByType(TypeNodeResolver::class),
$container->getByType(TypeNodeResolver::class),
new MissingTypehintCheck(true, []),
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
new UnresolvableTypeHelper(),
new GenericObjectTypeCheck(),
Expand Down
7 changes: 4 additions & 3 deletions tests/PHPStan/Rules/Classes/LocalTypeTraitAliasesRuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,18 @@ protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();

$container = self::getContainer();
return new LocalTypeTraitAliasesRule(
new LocalTypeAliasesCheck(
['GlobalTypeAlias' => 'int|string'],
self::createReflectionProvider(),
self::getContainer()->getByType(TypeNodeResolver::class),
$container->getByType(TypeNodeResolver::class),
new MissingTypehintCheck(true, []),
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
new UnresolvableTypeHelper(),
new GenericObjectTypeCheck(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,18 @@ protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();

$container = self::getContainer();
return new LocalTypeTraitUseAliasesRule(
new LocalTypeAliasesCheck(
['GlobalTypeAlias' => 'int|string'],
self::createReflectionProvider(),
self::getContainer()->getByType(TypeNodeResolver::class),
$container->getByType(TypeNodeResolver::class),
new MissingTypehintCheck(true, []),
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
new UnresolvableTypeHelper(),
new GenericObjectTypeCheck(),
Expand Down
5 changes: 3 additions & 2 deletions tests/PHPStan/Rules/Classes/MethodTagRuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,15 @@ protected function getRule(): TRule
{
$reflectionProvider = self::createReflectionProvider();

$container = self::getContainer();
return new MethodTagRule(
new MethodTagCheck(
$reflectionProvider,
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
new GenericObjectTypeCheck(),
new MissingTypehintCheck(true, []),
Expand Down
5 changes: 3 additions & 2 deletions tests/PHPStan/Rules/Classes/MethodTagTraitRuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,15 @@ protected function getRule(): TRule
{
$reflectionProvider = self::createReflectionProvider();

$container = self::getContainer();
return new MethodTagTraitRule(
new MethodTagCheck(
$reflectionProvider,
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
new GenericObjectTypeCheck(),
new MissingTypehintCheck(true, []),
Expand Down
5 changes: 3 additions & 2 deletions tests/PHPStan/Rules/Classes/MethodTagTraitUseRuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,15 @@ protected function getRule(): TRule
{
$reflectionProvider = self::createReflectionProvider();

$container = self::getContainer();
return new MethodTagTraitUseRule(
new MethodTagCheck(
$reflectionProvider,
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
new GenericObjectTypeCheck(),
new MissingTypehintCheck(true, []),
Expand Down
5 changes: 3 additions & 2 deletions tests/PHPStan/Rules/Classes/MixinRuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,15 @@ protected function getRule(): Rule
{
$reflectionProvider = self::createReflectionProvider();

$container = self::getContainer();
return new MixinRule(
new MixinCheck(
$reflectionProvider,
new ClassNameCheck(
new ClassCaseSensitivityCheck($reflectionProvider, true),
new ClassForbiddenNameCheck(self::getContainer()),
new ClassForbiddenNameCheck($container),
$reflectionProvider,
self::getContainer(),
$container,
),
new GenericObjectTypeCheck(),
new MissingTypehintCheck(true, []),
Expand Down
Loading
Loading