From dc13393ab9ebbd3bcaecd663cf4f387ae46f436c Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 3 Jan 2026 10:48:41 +0100 Subject: [PATCH 1/5] fix undefined variable in test --- tests/PHPStan/Rules/Methods/data/uppercase-string.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/PHPStan/Rules/Methods/data/uppercase-string.php b/tests/PHPStan/Rules/Methods/data/uppercase-string.php index de7500ee8c..628fd20dbd 100644 --- a/tests/PHPStan/Rules/Methods/data/uppercase-string.php +++ b/tests/PHPStan/Rules/Methods/data/uppercase-string.php @@ -28,6 +28,6 @@ public function test( $this->acceptUppercaseString($string); $this->acceptUppercaseString($uppercaseString); $this->acceptUppercaseString($numericString); - $this->acceptUppercaseString($nonEmptyLowercaseString); + $this->acceptUppercaseString($nonEmptyUppercaseString); } } From 94cd696af7c3083cf2f8067ea3247eba3dd0b391 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 3 Jan 2026 10:54:15 +0100 Subject: [PATCH 2/5] remove unused variable --- src/Analyser/NodeScopeResolver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Analyser/NodeScopeResolver.php b/src/Analyser/NodeScopeResolver.php index 54ed793d30..4a5a907deb 100644 --- a/src/Analyser/NodeScopeResolver.php +++ b/src/Analyser/NodeScopeResolver.php @@ -1910,7 +1910,7 @@ private function processStmtNode( continue; } - foreach ($catchTypes as $catchTypeIndex => $catchTypeItem) { + foreach ($catchTypes as $catchTypeItem) { if ($catchTypeItem->isSuperTypeOf($throwPoint->getType())->no()) { continue; } From 1f8481d19dbab6636e010739489fa7ac5c93283a Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 3 Jan 2026 10:55:09 +0100 Subject: [PATCH 3/5] fix unused variable $key --- src/Type/Php/StatDynamicReturnTypeExtension.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Type/Php/StatDynamicReturnTypeExtension.php b/src/Type/Php/StatDynamicReturnTypeExtension.php index b4dcd8bb7e..7f1d3367a3 100644 --- a/src/Type/Php/StatDynamicReturnTypeExtension.php +++ b/src/Type/Php/StatDynamicReturnTypeExtension.php @@ -17,6 +17,7 @@ use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; use SplFileObject; +use function count; use function in_array; #[AutowiredService] @@ -68,7 +69,7 @@ private function getReturnType(): Type 'blocks', ]; - foreach ($keys as $key) { + for ($i = 0; $i < count($keys); $i++) { $builder->setOffsetValueType(null, $valueType); } From 00bd6956e52d4caab62e9416db6f107ff07ce782 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 3 Jan 2026 10:58:45 +0100 Subject: [PATCH 4/5] Update NodeScopeResolver.php --- src/Analyser/NodeScopeResolver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Analyser/NodeScopeResolver.php b/src/Analyser/NodeScopeResolver.php index 4a5a907deb..c5d4bb96f2 100644 --- a/src/Analyser/NodeScopeResolver.php +++ b/src/Analyser/NodeScopeResolver.php @@ -6393,7 +6393,7 @@ private function processAssignVar( $throwPoints = array_merge($throwPoints, $keyResult->getThrowPoints()); $impurePoints = array_merge($impurePoints, $keyResult->getImpurePoints()); $isAlwaysTerminating = $isAlwaysTerminating || $keyResult->isAlwaysTerminating(); - $itemScope = $keyResult->getScope(); + // no need for $keyResult->getScope() } if ($arrayItem->key === null) { From 41364ea77e12e5e987425eda0fd6aa4fa3e00255 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 3 Jan 2026 11:06:20 +0100 Subject: [PATCH 5/5] remove unused parameters --- src/PhpDoc/StubValidator.php | 4 ++-- src/Rules/PhpDoc/WrongVariableNameInVarTagRule.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/PhpDoc/StubValidator.php b/src/PhpDoc/StubValidator.php index ca40efdecd..2b57559ca3 100644 --- a/src/PhpDoc/StubValidator.php +++ b/src/PhpDoc/StubValidator.php @@ -133,7 +133,7 @@ public function validate(array $stubFiles, bool $debug): array ]); $ruleRegistry = $this->getRuleRegistry($container); - $collectorRegistry = $this->getCollectorRegistry($container); + $collectorRegistry = $this->getCollectorRegistry(); $fileAnalyser = $container->getByType(FileAnalyser::class); @@ -293,7 +293,7 @@ private function getRuleRegistry(Container $container): RuleRegistry return new DirectRuleRegistry($rules); } - private function getCollectorRegistry(Container $container): CollectorRegistry + private function getCollectorRegistry(): CollectorRegistry { return new CollectorRegistry([]); } diff --git a/src/Rules/PhpDoc/WrongVariableNameInVarTagRule.php b/src/Rules/PhpDoc/WrongVariableNameInVarTagRule.php index a517f4e38e..ddfe1ff7e1 100644 --- a/src/Rules/PhpDoc/WrongVariableNameInVarTagRule.php +++ b/src/Rules/PhpDoc/WrongVariableNameInVarTagRule.php @@ -101,7 +101,7 @@ public function processNode(Node $node, Scope $scope): array } if ($node instanceof Node\Stmt\Global_) { - return $this->processGlobal($scope, $node, $varTags); + return $this->processGlobal($node, $varTags); } if ($node instanceof InClassNode || $node instanceof InClassMethodNode || $node instanceof InFunctionNode) { @@ -372,7 +372,7 @@ private function processStmt(Scope $scope, array $varTags, ?Expr $defaultExpr): * @param VarTag[] $varTags * @return list */ - private function processGlobal(Scope $scope, Node\Stmt\Global_ $node, array $varTags): array + private function processGlobal(Node\Stmt\Global_ $node, array $varTags): array { $variableNames = []; foreach ($node->vars as $var) {