From 7e15ae1451a4c192f799d9e8738a2b1480a79d0a Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 16 Aug 2021 12:44:29 +0200 Subject: [PATCH] Upgrade PHPStan rules and fix new reports (#697) --- composer.json | 38 +++++++++---------- .../Scope/PHPStanNodeScopeResolver.php | 3 +- phpstan.neon | 15 ++++++++ rules/DeadCode/ConditionEvaluator.php | 10 +++-- .../src/PhpScoper/StaticEasyPrefixer.php | 2 +- 5 files changed, 42 insertions(+), 26 deletions(-) diff --git a/composer.json b/composer.json index be30f7dbea2..d8de7bc720c 100644 --- a/composer.json +++ b/composer.json @@ -38,16 +38,16 @@ "symfony/http-kernel": "^5.3", "symfony/process": "^5.3", "symfony/yaml": "^5.3", - "symplify/astral": "^9.4.28", - "symplify/autowire-array-parameter": "^9.4.28", - "symplify/composer-json-manipulator": "^9.4.28", - "symplify/console-color-diff": "^9.4.28", - "symplify/package-builder": "^9.4.28", - "symplify/rule-doc-generator-contracts": "^9.4.28", - "symplify/simple-php-doc-parser": "^9.4.28", - "symplify/skipper": "^9.4.28", - "symplify/smart-file-system": "^9.4.28", - "symplify/symfony-php-config": "^9.4.28", + "symplify/astral": "^9.4.30", + "symplify/autowire-array-parameter": "^9.4.30", + "symplify/composer-json-manipulator": "^9.4.30", + "symplify/console-color-diff": "^9.4.30", + "symplify/package-builder": "^9.4.30", + "symplify/rule-doc-generator-contracts": "^9.4.30", + "symplify/simple-php-doc-parser": "^9.4.30", + "symplify/skipper": "^9.4.30", + "symplify/smart-file-system": "^9.4.30", + "symplify/symfony-php-config": "^9.4.30", "tracy/tracy": "^2.8", "webmozart/assert": "^1.10" }, @@ -56,17 +56,17 @@ "phpstan/extension-installer": "^1.1", "phpstan/phpstan-nette": "^0.12.19", "phpunit/phpunit": "^9.5", - "rector/phpstan-rules": "^0.3.3", + "rector/phpstan-rules": "^0.3.5", "rector/rector-generator": "^0.3", "spatie/enum": "^3.9", - "symplify/coding-standard": "^9.4.28", - "symplify/easy-ci": "^9.4.28", - "symplify/easy-coding-standard": "^9.4.28", - "symplify/easy-testing": "^9.4.28", - "symplify/monorepo-builder": "^9.4.28", - "symplify/phpstan-extensions": "^9.4.28", - "symplify/phpstan-rules": "^9.4.28", - "symplify/rule-doc-generator": "^9.4.28", + "symplify/coding-standard": "^9.4.30", + "symplify/easy-ci": "^9.4.30", + "symplify/easy-coding-standard": "^9.4.30", + "symplify/easy-testing": "^9.4.30", + "symplify/monorepo-builder": "^9.4.30", + "symplify/phpstan-extensions": "^9.4.30", + "symplify/phpstan-rules": "^9.4.30", + "symplify/rule-doc-generator": "^9.4.30", "timeweb/phpstan-enum": "^2.3" }, "replace": { diff --git a/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index df87182e75b..13061d628c5 100644 --- a/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -126,8 +126,7 @@ private function processNodesWithMixinHandling( array $nodes, MutatingScope $mutatingScope, callable $nodeCallback - ): array - { + ): array { $contents = $smartFileInfo->getContents(); // avoid crash on class with @mixin @see https://github.com/rectorphp/rector-src/pull/688 diff --git a/phpstan.neon b/phpstan.neon index 217725aa8db..b201f29a733 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -529,3 +529,18 @@ parameters: - message: '#Instead of array shape, use value object with specific types in constructor and getters#' path: src/NodeFactory/ClassWithPublicPropertiesFactory.php #26 + + - + message: '#Instead of abstract class, use specific service with composition#' + paths: + - packages/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/AbstractValuesAwareNode.php + - packages/PostRector/Rector/AbstractPostRector.php + - rules/Defluent/ValueObject/AbstractRootExpr.php + - rules/PhpSpecToPHPUnit/Rector/AbstractPhpSpecToPHPUnitRector.php + - src/Rector/AbstractRector.php + + - + message: '#This call has duplicate argument#' + paths: + - rules/Php72/Rector/Assign/ReplaceEachAssignmentWithKeyCurrentRector.php + diff --git a/rules/DeadCode/ConditionEvaluator.php b/rules/DeadCode/ConditionEvaluator.php index 34fc6918790..bef7d01dca2 100644 --- a/rules/DeadCode/ConditionEvaluator.php +++ b/rules/DeadCode/ConditionEvaluator.php @@ -16,8 +16,9 @@ final class ConditionEvaluator { - public function __construct(private PhpVersionProvider $phpVersionProvider) - { + public function __construct( + private PhpVersionProvider $phpVersionProvider + ) { } /** @@ -36,8 +37,9 @@ public function evaluate(ConditionInterface $condition) return null; } - private function evaluateVersionCompareCondition(VersionCompareCondition $versionCompareCondition): bool | int | null - { + private function evaluateVersionCompareCondition( + VersionCompareCondition $versionCompareCondition + ): bool | int | null { $compareSign = $versionCompareCondition->getCompareSign(); if ($compareSign !== null) { if ($compareSign === '<' && $this->phpVersionProvider->provide() < $versionCompareCondition->getSecondVersion()) { diff --git a/utils/compiler/src/PhpScoper/StaticEasyPrefixer.php b/utils/compiler/src/PhpScoper/StaticEasyPrefixer.php index d2ed62b4215..22cdb3733e7 100644 --- a/utils/compiler/src/PhpScoper/StaticEasyPrefixer.php +++ b/utils/compiler/src/PhpScoper/StaticEasyPrefixer.php @@ -19,7 +19,7 @@ final class StaticEasyPrefixer // for usage in Helmich\TypoScriptParser\Parser\Traverser\Visitor 'Helmich\TypoScriptParser\Parser\AST\Statement', // for usage in packages/Testing/PHPUnit/PlatformAgnosticAssertions.php - 'PHPUnit\Framework\Constraint\IsEqual' + 'PHPUnit\Framework\Constraint\IsEqual', ]; /**