Skip to content

Commit 335a386

Browse files
committed
Updated Rector to commit 63201f76725831988f1484476f6f84e0976a5742
rectorphp/rector-src@63201f7 [CodeQuality] Skip Superglobals variable on SimplifyEmptyCheckOnEmptyArrayRector (#5369)
1 parent 291e258 commit 335a386

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

rules/CodeQuality/Rector/Empty_/SimplifyEmptyCheckOnEmptyArrayRector.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use PHPStan\Type\ArrayType;
2121
use PHPStan\Type\MixedType;
2222
use Rector\Core\NodeAnalyzer\ExprAnalyzer;
23+
use Rector\Core\Php\ReservedKeywordAnalyzer;
2324
use Rector\Core\PhpParser\AstResolver;
2425
use Rector\Core\Rector\AbstractScopeAwareRector;
2526
use Rector\Core\Reflection\ReflectionResolver;
@@ -51,12 +52,18 @@ final class SimplifyEmptyCheckOnEmptyArrayRector extends AbstractScopeAwareRecto
5152
* @var \Rector\TypeDeclaration\TypeInferer\PropertyTypeInferer\AllAssignNodePropertyTypeInferer
5253
*/
5354
private $allAssignNodePropertyTypeInferer;
54-
public function __construct(ExprAnalyzer $exprAnalyzer, ReflectionResolver $reflectionResolver, AstResolver $astResolver, AllAssignNodePropertyTypeInferer $allAssignNodePropertyTypeInferer)
55+
/**
56+
* @readonly
57+
* @var \Rector\Core\Php\ReservedKeywordAnalyzer
58+
*/
59+
private $reservedKeywordAnalyzer;
60+
public function __construct(ExprAnalyzer $exprAnalyzer, ReflectionResolver $reflectionResolver, AstResolver $astResolver, AllAssignNodePropertyTypeInferer $allAssignNodePropertyTypeInferer, ReservedKeywordAnalyzer $reservedKeywordAnalyzer)
5561
{
5662
$this->exprAnalyzer = $exprAnalyzer;
5763
$this->reflectionResolver = $reflectionResolver;
5864
$this->astResolver = $astResolver;
5965
$this->allAssignNodePropertyTypeInferer = $allAssignNodePropertyTypeInferer;
66+
$this->reservedKeywordAnalyzer = $reservedKeywordAnalyzer;
6067
}
6168
public function getRuleDefinition() : RuleDefinition
6269
{
@@ -97,13 +104,20 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node
97104
}
98105
return new Identical($node->expr, new Array_());
99106
}
107+
private function isAllowedVariable(Variable $variable) : bool
108+
{
109+
if (\is_string($variable->name) && $this->reservedKeywordAnalyzer->isNativeVariable($variable->name)) {
110+
return \false;
111+
}
112+
return !$this->exprAnalyzer->isNonTypedFromParam($variable);
113+
}
100114
private function isAllowedExpr(Expr $expr, Scope $scope) : bool
101115
{
102116
if (!$scope->getType($expr) instanceof ArrayType) {
103117
return \false;
104118
}
105119
if ($expr instanceof Variable) {
106-
return !$this->exprAnalyzer->isNonTypedFromParam($expr);
120+
return $this->isAllowedVariable($expr);
107121
}
108122
if (!$expr instanceof PropertyFetch && !$expr instanceof StaticPropertyFetch) {
109123
return \false;

src/Application/VersionResolver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ final class VersionResolver
1919
* @api
2020
* @var string
2121
*/
22-
public const PACKAGE_VERSION = '54491a53f081fd8785269513b1650a524a9077f1';
22+
public const PACKAGE_VERSION = '63201f76725831988f1484476f6f84e0976a5742';
2323
/**
2424
* @api
2525
* @var string
2626
*/
27-
public const RELEASE_DATE = '2023-12-17 07:27:47';
27+
public const RELEASE_DATE = '2023-12-17 16:22:12';
2828
/**
2929
* @var int
3030
*/

0 commit comments

Comments
 (0)