From 21ead88cdeef5013e635c9e4eb2a22456d6e93e9 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Fri, 11 Nov 2022 20:30:37 +0700 Subject: [PATCH] [Core] Improve performance: remove unnecessary loop StmtsAwareInterface to fill Scope on PHPStanNodeScopeResolver (#3048) * [Core] Improve performance: remove unnecessary loop StmtsAwareInterface to fill Scope on PHPStanNodeScopeResolver * clean up ignore phpstan complexity for PHPStanNodeScopeResolver * phpstan ignore cognitive complexity for abstract rector --- .../PHPStan/Scope/PHPStanNodeScopeResolver.php | 16 ---------------- phpstan.neon | 5 ++++- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index d831ec9091c..7c1553169ca 100644 --- a/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -44,7 +44,6 @@ use PHPStan\Type\TypeCombinator; use Rector\Caching\Detector\ChangedFilesDetector; use Rector\Caching\FileSystem\DependencyResolver; -use Rector\Core\Contract\PhpParser\Node\StmtsAwareInterface; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\StaticReflection\SourceLocator\ParentAttributeSourceLocator; use Rector\Core\StaticReflection\SourceLocator\RenamedClassesSourceLocator; @@ -166,10 +165,6 @@ public function processNodes( $node->var->setAttribute(AttributeKey::SCOPE, $mutatingScope); } - if ($node instanceof StmtsAwareInterface) { - $this->processStmtsAwareInterface($node, $mutatingScope); - } - if ($node instanceof Trait_) { $traitName = $this->resolveClassName($node); @@ -224,17 +219,6 @@ public function processNodes( return $this->processNodesWithDependentFiles($filePath, $stmts, $scope, $nodeCallback); } - private function processStmtsAwareInterface(StmtsAwareInterface $stmtsAware, MutatingScope $mutatingScope): void - { - if ($stmtsAware->stmts === null) { - return; - } - - foreach ($stmtsAware->stmts as $stmt) { - $stmt->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } - } - private function processArrayItem(ArrayItem $arrayItem, MutatingScope $mutatingScope): void { if ($arrayItem->key instanceof Expr) { diff --git a/phpstan.neon b/phpstan.neon index 60e900645f8..7f63c7b2cc9 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -71,7 +71,6 @@ parameters: - rules/Php70/EregToPcreTransformer.php - packages/NodeTypeResolver/NodeTypeResolver.php - rules/Renaming/NodeManipulator/ClassRenamer.php - - packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php - "#^Cognitive complexity for \"Rector\\\\Php70\\\\EregToPcreTransformer\\:\\:(.*?)\" is (.*?), keep it under 10$#" - '#Cognitive complexity for "Rector\\Core\\PhpParser\\Node\\Value\\ValueResolver\:\:getValue\(\)" is \d+, keep it under 10#' @@ -814,3 +813,7 @@ parameters: - message: '#"empty\(\$right\)" is forbidden to use#' path: src/Util/ArrayParametersMerger.php + + - + message: '#Cognitive complexity for "Rector\\Core\\Rector\\AbstractRector\:\:enterNode\(\)" is 11, keep it under 10#' + path: src/Rector/AbstractRector.php