mirror of
https://github.com/rectorphp/rector.git
synced 2025-04-14 12:32:00 +02:00
Updated Rector to commit 2dd395167cdc146a1b566bae9c5c2f2885e55c16
2dd395167c
[TypeDeclaration] Skip assign in construct with method call property same name on RestoreDefaultNullToNullableTypePropertyRector (#5556)
This commit is contained in:
parent
9464484f39
commit
e394be7dd2
@ -20,6 +20,7 @@ use PHPStan\Type\ObjectType;
|
||||
use Rector\NodeAnalyzer\PropertyFetchAnalyzer;
|
||||
use Rector\NodeTypeResolver\NodeTypeResolver;
|
||||
use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser;
|
||||
use Rector\PhpParser\Comparing\NodeComparator;
|
||||
use Rector\TypeDeclaration\Matcher\PropertyAssignMatcher;
|
||||
use Rector\TypeDeclaration\NodeAnalyzer\AutowiredClassMethodOrPropertyAnalyzer;
|
||||
use Rector\ValueObject\MethodName;
|
||||
@ -50,17 +51,23 @@ final class ConstructorAssignDetector
|
||||
* @var \Rector\NodeAnalyzer\PropertyFetchAnalyzer
|
||||
*/
|
||||
private $propertyFetchAnalyzer;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpParser\Comparing\NodeComparator
|
||||
*/
|
||||
private $nodeComparator;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private const IS_FIRST_LEVEL_STATEMENT = 'first_level_stmt';
|
||||
public function __construct(NodeTypeResolver $nodeTypeResolver, PropertyAssignMatcher $propertyAssignMatcher, SimpleCallableNodeTraverser $simpleCallableNodeTraverser, AutowiredClassMethodOrPropertyAnalyzer $autowiredClassMethodOrPropertyAnalyzer, PropertyFetchAnalyzer $propertyFetchAnalyzer)
|
||||
public function __construct(NodeTypeResolver $nodeTypeResolver, PropertyAssignMatcher $propertyAssignMatcher, SimpleCallableNodeTraverser $simpleCallableNodeTraverser, AutowiredClassMethodOrPropertyAnalyzer $autowiredClassMethodOrPropertyAnalyzer, PropertyFetchAnalyzer $propertyFetchAnalyzer, NodeComparator $nodeComparator)
|
||||
{
|
||||
$this->nodeTypeResolver = $nodeTypeResolver;
|
||||
$this->propertyAssignMatcher = $propertyAssignMatcher;
|
||||
$this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser;
|
||||
$this->autowiredClassMethodOrPropertyAnalyzer = $autowiredClassMethodOrPropertyAnalyzer;
|
||||
$this->propertyFetchAnalyzer = $propertyFetchAnalyzer;
|
||||
$this->nodeComparator = $nodeComparator;
|
||||
}
|
||||
public function isPropertyAssigned(ClassLike $classLike, string $propertyName) : bool
|
||||
{
|
||||
@ -179,14 +186,18 @@ final class ConstructorAssignDetector
|
||||
private function isPropertyUsedInAssign(Assign $assign, string $propertyName) : bool
|
||||
{
|
||||
$nodeFinder = new NodeFinder();
|
||||
return (bool) $nodeFinder->findFirst($assign->expr, static function (Node $node) use($propertyName) : ?bool {
|
||||
$var = $assign->var;
|
||||
return (bool) $nodeFinder->findFirst($assign->expr, function (Node $node) use($propertyName, $var) : ?bool {
|
||||
if (!$node instanceof PropertyFetch) {
|
||||
return null;
|
||||
}
|
||||
if (!$node->name instanceof Identifier) {
|
||||
return null;
|
||||
}
|
||||
return $node->name->toString() === $propertyName;
|
||||
if ($node->name->toString() !== $propertyName) {
|
||||
return null;
|
||||
}
|
||||
return $this->nodeComparator->areNodesEqual($node, $var);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -19,12 +19,12 @@ final class VersionResolver
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = '0.19.6';
|
||||
public const PACKAGE_VERSION = '2dd395167cdc146a1b566bae9c5c2f2885e55c16';
|
||||
/**
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2024-02-04 13:42:24';
|
||||
public const RELEASE_DATE = '2024-02-05 03:44:33';
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user