diff --git a/tools/.phpstan/composer.lock b/tools/.phpstan/composer.lock index 6cfd7239b..90102ae20 100644 --- a/tools/.phpstan/composer.lock +++ b/tools/.phpstan/composer.lock @@ -130,11 +130,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.2.8", + "version": "2.2.9", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e285254e60f33c21902efef4a926ca0987c06804", - "reference": "e285254e60f33c21902efef4a926ca0987c06804", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/13d6b4f347bad222da436580c8304fa6f83e6bd0", + "reference": "13d6b4f347bad222da436580c8304fa6f83e6bd0", "shasum": "" }, "require": { @@ -190,7 +190,7 @@ "type": "github" } ], - "time": "2026-08-04T22:21:45+00:00" + "time": "2026-08-22T07:38:16+00:00" }, { "name": "phpstan/phpstan-strict-rules", @@ -246,16 +246,16 @@ }, { "name": "tomasvotruba/type-coverage", - "version": "2.3.0", + "version": "2.3.4", "source": { "type": "git", "url": "https://github.com/TomasVotruba/type-coverage.git", - "reference": "7ba48c1bf3bbb7ffe99caacc7017bae5ee72d644" + "reference": "7b4aec57af15514dac9a3c5a9671da501444ecd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TomasVotruba/type-coverage/zipball/7ba48c1bf3bbb7ffe99caacc7017bae5ee72d644", - "reference": "7ba48c1bf3bbb7ffe99caacc7017bae5ee72d644", + "url": "https://api.github.com/repos/TomasVotruba/type-coverage/zipball/7b4aec57af15514dac9a3c5a9671da501444ecd0", + "reference": "7b4aec57af15514dac9a3c5a9671da501444ecd0", "shasum": "" }, "require": { @@ -264,12 +264,14 @@ "webmozart/assert": "^1.11 || ^2.1" }, "require-dev": { + "doctrine/collections": "^2.3", "phpstan/extension-installer": "^1.4", "phpunit/phpunit": "^13.2", - "rector/jack": "^1.0", + "rector/jack": "^1.1", "rector/rector": "^2.5", "shipmonk/composer-dependency-analyser": "^1.8", "symfony/dom-crawler": "^8.1", + "symfony/form": "^8.1", "symplify/easy-coding-standard": "^13.2", "tomasvotruba/unused-public": "^2.2", "tracy/tracy": "^2.12" @@ -278,8 +280,7 @@ "extra": { "phpstan": { "includes": [ - "config/extension.neon", - "packages/type-perfect/config/extension.neon" + "config/extension.neon" ] } }, @@ -300,7 +301,7 @@ ], "support": { "issues": "https://github.com/TomasVotruba/type-coverage/issues", - "source": "https://github.com/TomasVotruba/type-coverage/tree/2.3.0" + "source": "https://github.com/TomasVotruba/type-coverage/tree/2.3.4" }, "funding": [ { @@ -312,7 +313,7 @@ "type": "github" } ], - "time": "2026-07-29T20:32:37+00:00" + "time": "2026-08-18T07:48:32+00:00" }, { "name": "webmozart/assert", diff --git a/tools/.phpstan/vendor/composer/installed.json b/tools/.phpstan/vendor/composer/installed.json index eb6be77e4..aef2ac577 100644 --- a/tools/.phpstan/vendor/composer/installed.json +++ b/tools/.phpstan/vendor/composer/installed.json @@ -129,12 +129,12 @@ }, { "name": "phpstan/phpstan", - "version": "2.2.8", - "version_normalized": "2.2.8.0", + "version": "2.2.9", + "version_normalized": "2.2.9.0", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e285254e60f33c21902efef4a926ca0987c06804", - "reference": "e285254e60f33c21902efef4a926ca0987c06804", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/13d6b4f347bad222da436580c8304fa6f83e6bd0", + "reference": "13d6b4f347bad222da436580c8304fa6f83e6bd0", "shasum": "" }, "require": { @@ -143,7 +143,7 @@ "conflict": { "phpstan/phpstan-shim": "*" }, - "time": "2026-08-04T22:21:45+00:00", + "time": "2026-08-22T07:38:16+00:00", "bin": [ "phpstan", "phpstan.phar" @@ -251,17 +251,17 @@ }, { "name": "tomasvotruba/type-coverage", - "version": "2.3.0", - "version_normalized": "2.3.0.0", + "version": "2.3.4", + "version_normalized": "2.3.4.0", "source": { "type": "git", "url": "https://github.com/TomasVotruba/type-coverage.git", - "reference": "7ba48c1bf3bbb7ffe99caacc7017bae5ee72d644" + "reference": "7b4aec57af15514dac9a3c5a9671da501444ecd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TomasVotruba/type-coverage/zipball/7ba48c1bf3bbb7ffe99caacc7017bae5ee72d644", - "reference": "7ba48c1bf3bbb7ffe99caacc7017bae5ee72d644", + "url": "https://api.github.com/repos/TomasVotruba/type-coverage/zipball/7b4aec57af15514dac9a3c5a9671da501444ecd0", + "reference": "7b4aec57af15514dac9a3c5a9671da501444ecd0", "shasum": "" }, "require": { @@ -270,23 +270,24 @@ "webmozart/assert": "^1.11 || ^2.1" }, "require-dev": { + "doctrine/collections": "^2.3", "phpstan/extension-installer": "^1.4", "phpunit/phpunit": "^13.2", - "rector/jack": "^1.0", + "rector/jack": "^1.1", "rector/rector": "^2.5", "shipmonk/composer-dependency-analyser": "^1.8", "symfony/dom-crawler": "^8.1", + "symfony/form": "^8.1", "symplify/easy-coding-standard": "^13.2", "tomasvotruba/unused-public": "^2.2", "tracy/tracy": "^2.12" }, - "time": "2026-07-29T20:32:37+00:00", + "time": "2026-08-18T07:48:32+00:00", "type": "phpstan-extension", "extra": { "phpstan": { "includes": [ - "config/extension.neon", - "packages/type-perfect/config/extension.neon" + "config/extension.neon" ] } }, @@ -308,7 +309,7 @@ ], "support": { "issues": "https://github.com/TomasVotruba/type-coverage/issues", - "source": "https://github.com/TomasVotruba/type-coverage/tree/2.3.0" + "source": "https://github.com/TomasVotruba/type-coverage/tree/2.3.4" }, "funding": [ { diff --git a/tools/.phpstan/vendor/composer/installed.php b/tools/.phpstan/vendor/composer/installed.php index a845cbaae..f8f4136a8 100644 --- a/tools/.phpstan/vendor/composer/installed.php +++ b/tools/.phpstan/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => '12.5.x-dev', 'version' => '12.5.9999999.9999999-dev', - 'reference' => '20cfcbbb9101c76dadab54f7d0bd86794c5ff1e4', + 'reference' => '9e1e76dcb8e3a5d4cbd9dca3b24b98c2729b2d06', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => '12.5.x-dev', 'version' => '12.5.9999999.9999999-dev', - 'reference' => '20cfcbbb9101c76dadab54f7d0bd86794c5ff1e4', + 'reference' => '9e1e76dcb8e3a5d4cbd9dca3b24b98c2729b2d06', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -38,9 +38,9 @@ 'dev_requirement' => true, ), 'phpstan/phpstan' => array( - 'pretty_version' => '2.2.8', - 'version' => '2.2.8.0', - 'reference' => 'e285254e60f33c21902efef4a926ca0987c06804', + 'pretty_version' => '2.2.9', + 'version' => '2.2.9.0', + 'reference' => '13d6b4f347bad222da436580c8304fa6f83e6bd0', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), @@ -56,9 +56,9 @@ 'dev_requirement' => true, ), 'tomasvotruba/type-coverage' => array( - 'pretty_version' => '2.3.0', - 'version' => '2.3.0.0', - 'reference' => '7ba48c1bf3bbb7ffe99caacc7017bae5ee72d644', + 'pretty_version' => '2.3.4', + 'version' => '2.3.4.0', + 'reference' => '7b4aec57af15514dac9a3c5a9671da501444ecd0', 'type' => 'phpstan-extension', 'install_path' => __DIR__ . '/../tomasvotruba/type-coverage', 'aliases' => array(), diff --git a/tools/.phpstan/vendor/phpstan/phpstan/phpstan.phar b/tools/.phpstan/vendor/phpstan/phpstan/phpstan.phar index 0f970eb62..803043588 100755 Binary files a/tools/.phpstan/vendor/phpstan/phpstan/phpstan.phar and b/tools/.phpstan/vendor/phpstan/phpstan/phpstan.phar differ diff --git a/tools/.phpstan/vendor/phpstan/phpstan/phpstan.phar.asc b/tools/.phpstan/vendor/phpstan/phpstan/phpstan.phar.asc index baf94ff3c..c7a31b2f9 100644 --- a/tools/.phpstan/vendor/phpstan/phpstan/phpstan.phar.asc +++ b/tools/.phpstan/vendor/phpstan/phpstan/phpstan.phar.asc @@ -1,16 +1,16 @@ -----BEGIN PGP SIGNATURE----- -iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmpyZb8ACgkQUcZzBf/C -5cCGHg//R1lYZ3eZiZ5Ikj1yHXZcMJ+BtlaZ5C18CCUUcGZ/RrIOSdj+uAYe4riJ -1DBfQ3ofrI0DX4+jeEiwgYyGv1Afh1OdP+2bgZrZbF/5usBAD+NYODm1hc8rhLhl -PnOkTlc9wcCDix4fg/msrgPZwEq2oRJfHkgTMLW7wrLRpJJKlE4YMgV+ytxpEFHV -jSYYMnCwz0eGNz38DgSEaVdLNuMtFP4o1dXnjuQUbJG7St0EIL8+wNSVtrnQLPk6 -f7PZamSFkM+TfCiarOygiS0kb3eJmW6aX6PU/UrGePF8/p3snG4ekTe+/muvsFsK -Psg6DikEjhJ1yiV7ywM5dCokW5gP6HbZhVHxcRQlay1Fw6bsKJflb7rDlj2nMoL3 -80YHDUsiYGDKFnBOPJ9nX5B9sdipkSm4L2woEsbvqA9MJb1v5HNXVw8rhIsy7GzR -rV9aMMR1h5geUPrcvpiCP7l3xogCBR5IUNqk4AQTFiVS5Pd89a6IFU1bM6hv7c5N -y252mXQB5AYcuwD3SEG0ExW29wFqSoT1flYXGrJaGjX87WdPk463ZX0eECeRKbv7 -b5ymyY3Xp9qpXbWUR+MrP1NNvC0fTMTKGfaWnKYngbC7nQ9koH6SGFG6F63/4Ih/ -JvJ0/1tNPkNBXvhn+Wg98ecQQKrMMvNWkltzMiDjwDz3Oot+e7E= -=Jthr +iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmqJUaoACgkQUcZzBf/C +5cBFEQ/+N64p6K7m3oh3H0/zId5pAZ+vZ5/s4LVyTaN6Wx7SSpjNa+Ad+BT1XQxe +i8lG2x1t8wAlwpMttK7QghUDhYgpuNen+0FEfarI6sqnF5HhnNbAkkHoZ+6zoHzb +A6s7W4C+VnQQDgV7gHgPNCQ7ozlqIhlbpIvge54PCiStYpkhVBDsNSCvebQeUfd4 +z581dc93GPcO1tkt9/u7O15vTZB3wUfyXYQVvCjqG3rpHA1MEXgunHUnyQcYU4zp +RY9JtnxzIyGa0QxMozYFpAub//CG9QgnjaTy7yFz9mBaopCpDS+3biA8HyCC1YSa +gV+r/mBbjGgTTkPvKv08M+UJoxCakM3VVXNeUzYxSCEPqNhrw1YNeqcX0FgBpbVN +tH5WqOKkIucMkO0RJ1OZFk7x/yCbA5ALqEr5NjSxzhpjZy0I1mKmPUousc9TRObx +0AJQRQqxtNRG5xoeqADVavvM7y3P92EOloxjWQKzBf95oTBRfu1MksBqMdnb2hPH +Os2Igt0uWWJIQXW4GXW03Apx9uH7AzAIpdNt+3ZrNTQZCAH2hod6cjnHj2SI0FLy +JrAu6jKY7qiXtY9y2UdxS+bDUSkN8BSiis5oN1N4jOCDTVwarcaiocOSo7hFSAcm +CJqtVuNVJaj53sZmhm7UXv9tDsEc9ye1iLcWo090Yrpe5aYBgnw= +=2Zmb -----END PGP SIGNATURE----- diff --git a/tools/.phpstan/vendor/tomasvotruba/type-coverage/README.md b/tools/.phpstan/vendor/tomasvotruba/type-coverage/README.md index 4abb94090..4de8ddefe 100644 --- a/tools/.phpstan/vendor/tomasvotruba/type-coverage/README.md +++ b/tools/.phpstan/vendor/tomasvotruba/type-coverage/README.md @@ -83,6 +83,16 @@ The package is available on PHP 7.2+. With [PHPStan extension installer](https://github.com/phpstan/extension-installer), everything is ready to run. +Without it, include the config manually: + +```yaml +# phpstan.neon +includes: + - vendor/tomasvotruba/type-coverage/config/extension.neon +``` + +
+ Enable each item on their own: ```yaml @@ -167,14 +177,13 @@ These rules ship with the package [installed above](#install), there is nothing Every rule is opt-in and disabled by default, so you can pick the ones that fit your project. See [Configure](#configure) below for the full list. -The 3 checks below are the simplest ones to start with: +The 2 checks below are the simplest ones to start with: ```yaml parameters: type_perfect: no_isset_on_object: true no_empty_on_object: true - no_array_access_on_object: true no_param_type_removal: true ``` @@ -211,29 +220,7 @@ if (! $this->someType instanceof SomeType) {
-Second rule (`no_array_access_on_object`) checks we use explicit object methods over magic array access: - -```php -$article = new Article(); - -$id = $article['id']; -// we have no idea, what the type is -``` - -:no_good: - -↓ - -```php -$id = $article->getId(); -// we know the type is int -``` - -:heavy_check_mark: - -
- -Last rule (`no_param_type_removal`) checks that all interface implementations follow the same method signature as the interface: +Second rule (`no_param_type_removal`) checks that all interface implementations follow the same method signature as the interface: ```php interface SomeInterface @@ -271,10 +258,9 @@ You can enable them all at once: ```yaml parameters: type_perfect: - # the 3 checks above + # the 2 checks above no_isset_on_object: true no_empty_on_object: true - no_array_access_on_object: true no_param_type_removal: true no_mixed_property: true diff --git a/tools/.phpstan/vendor/tomasvotruba/type-coverage/composer.json b/tools/.phpstan/vendor/tomasvotruba/type-coverage/composer.json index e706ef438..6b66deb6b 100644 --- a/tools/.phpstan/vendor/tomasvotruba/type-coverage/composer.json +++ b/tools/.phpstan/vendor/tomasvotruba/type-coverage/composer.json @@ -16,9 +16,11 @@ "rector/rector": "^2.5", "tracy/tracy": "^2.12", "tomasvotruba/unused-public": "^2.2", - "rector/jack": "^1.0", + "rector/jack": "^1.1", "shipmonk/composer-dependency-analyser": "^1.8", - "symfony/dom-crawler": "^8.1" + "symfony/dom-crawler": "^8.1", + "doctrine/collections": "^2.3", + "symfony/form": "^8.1" }, "autoload": { "psr-4": { @@ -30,7 +32,10 @@ "psr-4": { "TomasVotruba\\TypeCoverage\\Tests\\": "tests", "Rector\\TypePerfect\\Tests\\": "packages/type-perfect/tests" - } + }, + "classmap": [ + "stubs" + ] }, "scripts": { "check-cs": "vendor/bin/ecs check --ansi", @@ -47,8 +52,7 @@ "extra": { "phpstan": { "includes": [ - "config/extension.neon", - "packages/type-perfect/config/extension.neon" + "config/extension.neon" ] } } diff --git a/tools/.phpstan/vendor/tomasvotruba/type-coverage/config/extension.neon b/tools/.phpstan/vendor/tomasvotruba/type-coverage/config/extension.neon index b2a58b699..996f0ecb5 100644 --- a/tools/.phpstan/vendor/tomasvotruba/type-coverage/config/extension.neon +++ b/tools/.phpstan/vendor/tomasvotruba/type-coverage/config/extension.neon @@ -1,3 +1,6 @@ +includes: + - ../packages/type-perfect/config/extension.neon + parametersSchema: # see https://doc.nette.org/en/schema for configuration type_coverage: structure([ diff --git a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/config/extension.neon b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/config/extension.neon index e590d9b11..f842cb505 100644 --- a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/config/extension.neon +++ b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/config/extension.neon @@ -11,7 +11,6 @@ parametersSchema: no_mixed_caller: bool() no_param_type_removal: bool() - no_array_access_on_object: bool() no_isset_on_object: bool() no_empty_on_object: bool() ]) @@ -28,7 +27,6 @@ parameters: no_mixed_caller: false no_param_type_removal: false - no_array_access_on_object: false no_isset_on_object: false no_empty_on_object: false @@ -38,9 +36,6 @@ rules: # no_param_type_removal - Rector\TypePerfect\Rules\NoParamTypeRemovalRule - # no_array_access_on_object - - Rector\TypePerfect\Rules\NoArrayAccessOnObjectRule - # no_isset_on_object - Rector\TypePerfect\Rules\NoIssetOnObjectRule diff --git a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Configuration.php b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Configuration.php index c944604be..da93b05e6 100644 --- a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Configuration.php +++ b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Configuration.php @@ -19,7 +19,6 @@ public function __construct( $this->parameters['no_mixed'] = true; $this->parameters['null_over_false'] = true; $this->parameters['no_param_type_removal'] = true; - $this->parameters['no_array_access_on_object'] = true; $this->parameters['no_isset_on_object'] = true; $this->parameters['no_empty_on_object'] = true; } @@ -63,11 +62,6 @@ public function isNoParamTypeRemovalEnabled(): bool return $this->parameters['no_param_type_removal'] ?? false; } - public function isNoArrayAccessOnObjectEnabled(): bool - { - return $this->parameters['no_array_access_on_object'] ?? false; - } - public function isNoIssetOnObjectEnabled(): bool { return $this->parameters['no_isset_on_object'] ?? false; diff --git a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Rules/NarrowReturnObjectTypeRule.php b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Rules/NarrowReturnObjectTypeRule.php index 6e5171b2f..2a65e327b 100644 --- a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Rules/NarrowReturnObjectTypeRule.php +++ b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Rules/NarrowReturnObjectTypeRule.php @@ -28,6 +28,23 @@ { public const string ERROR_MESSAGE = 'Provide more specific return type "%s" over abstract one'; + /** + * These concrete classes are commonly returned behind an abstract interface/type on purpose, + * so narrowing to them would break the intended contract. + * + * @var string[] + */ + private const array SKIPPED_RETURN_CLASSES = [ + 'Doctrine\Common\Collections\ArrayCollection', + 'Doctrine\Common\Collections\Collection', + 'Symfony\Component\Form\Form', + 'Symfony\Component\Form\FormInterface', + 'DateTime', + 'DateTimeImmutable', + 'SplObjectStorage', + 'Doctrine\DBAL\Schema\AbstractSchemaManager', + ]; + public function __construct( private ReturnNodeFinder $returnNodeFinder, private MethodNodeAnalyser $methodNodeAnalyser, @@ -134,6 +151,11 @@ private function shouldSkipReturnExprType(Type $type): bool return true; } + // skip concrete classes that are expected to be returned behind an abstract interface/type + if (in_array($type->getObjectClassNames()[0], self::SKIPPED_RETURN_CLASSES, true)) { + return true; + } + return $type->getObjectClassReflections()[0] ->isAnonymous(); } diff --git a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Rules/NoArrayAccessOnObjectRule.php b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Rules/NoArrayAccessOnObjectRule.php deleted file mode 100644 index 17a4c4954..000000000 --- a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/src/Rules/NoArrayAccessOnObjectRule.php +++ /dev/null @@ -1,81 +0,0 @@ - - */ -final readonly class NoArrayAccessOnObjectRule implements Rule -{ - public const string ERROR_MESSAGE = 'Use explicit methods over array access on object'; - - /** - * @var string[] - */ - private const array ALLOWED_CLASSES = [ - 'SplFixedArray', - 'SimpleXMLElement', - 'Iterator', - 'WeakMap', - 'Aws\ResultInterface', - 'Symfony\Component\DomCrawler\AbstractUriElement', - 'Symfony\Component\Form\FormInterface', - 'Symfony\Component\OptionsResolver\Options', - ]; - - public function __construct( - private Configuration $configuration, - ) { - } - - /** - * @return class-string - */ - public function getNodeType(): string - { - return ArrayDimFetch::class; - } - - /** - * @param ArrayDimFetch $node - * @return RuleError[] - */ - public function processNode(Node $node, Scope $scope): array - { - if (! $this->configuration->isNoArrayAccessOnObjectEnabled()) { - return []; - } - - $varType = $scope->getType($node->var); - if (! $varType instanceof ObjectType) { - return []; - } - - if ($this->isAllowedObjectType($varType)) { - return []; - } - - return [ - RuleErrorBuilder::message(self::ERROR_MESSAGE) - ->identifier('typePerfect.noArrayAccessOnObject') - ->build(), - ]; - } - - private function isAllowedObjectType(ObjectType $objectType): bool - { - return array_any(self::ALLOWED_CLASSES, fn (string $allowedClass): bool => $objectType->isInstanceOf($allowedClass)->yes()); - } -} diff --git a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/tests/Rules/NarrowReturnObjectTypeRule/Fixture/SkipArrayCollection.php b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/tests/Rules/NarrowReturnObjectTypeRule/Fixture/SkipArrayCollection.php new file mode 100644 index 000000000..7de3e166f --- /dev/null +++ b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/tests/Rules/NarrowReturnObjectTypeRule/Fixture/SkipArrayCollection.php @@ -0,0 +1,16 @@ +children() as $name => $childElement) { - return isset($childElement['some']); - } - } -} diff --git a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/tests/Rules/NoArrayAccessOnObjectRule/NoArrayAccessOnObjectRuleTest.php b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/tests/Rules/NoArrayAccessOnObjectRule/NoArrayAccessOnObjectRuleTest.php deleted file mode 100644 index 332a98708..000000000 --- a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/tests/Rules/NoArrayAccessOnObjectRule/NoArrayAccessOnObjectRuleTest.php +++ /dev/null @@ -1,55 +0,0 @@ - $expectedErrorMessagesWithLines - */ - #[DataProvider('provideData')] - public function testRule(string $filePath, array $expectedErrorMessagesWithLines): void - { - $this->analyse([$filePath], $expectedErrorMessagesWithLines); - } - - /** - * @return Iterator, mixed>> - */ - public static function provideData(): Iterator - { - yield [__DIR__ . '/Fixture/ArrayAccessOnObject.php', [[NoArrayAccessOnObjectRule::ERROR_MESSAGE, 14]]]; - yield [__DIR__ . '/Fixture/ArrayAccessOnNestedObject.php', [[NoArrayAccessOnObjectRule::ERROR_MESSAGE, 14]]]; - - yield [__DIR__ . '/Fixture/SkipIterator.php', []]; - yield [__DIR__ . '/Fixture/SkipOnArray.php', []]; - yield [__DIR__ . '/Fixture/SkipSplFixedArray.php', []]; - yield [__DIR__ . '/Fixture/SkipUriElement.php', []]; - yield [__DIR__ . '/Fixture/SkipWeakMap.php', []]; - yield [__DIR__ . '/Fixture/SkipXml.php', []]; - yield [__DIR__ . '/Fixture/SkipXmlElementForeach.php', []]; - } - - /** - * @return string[] - */ - #[Override] - public static function getAdditionalConfigFiles(): array - { - return [__DIR__ . '/../../../config/extension.neon']; - } - - protected function getRule(): Rule - { - return self::getContainer()->getByType(NoArrayAccessOnObjectRule::class); - } -} diff --git a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/tests/Rules/NoArrayAccessOnObjectRule/Source/ChildOfSomeClassWithArrayAccess.php b/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/tests/Rules/NoArrayAccessOnObjectRule/Source/ChildOfSomeClassWithArrayAccess.php deleted file mode 100644 index a04d76d4e..000000000 --- a/tools/.phpstan/vendor/tomasvotruba/type-coverage/packages/type-perfect/tests/Rules/NoArrayAccessOnObjectRule/Source/ChildOfSomeClassWithArrayAccess.php +++ /dev/null @@ -1,9 +0,0 @@ -