Skip to content

Commit

Permalink
[NodeManipulator] Remove parent lookup on ClassMethodPropertyFetchMan…
Browse files Browse the repository at this point in the history
…ipulator (#4170)

* [NodeManipulator] Remove parent lookup on ClassMethodPropertyFetchManipulator

* remove dep
  • Loading branch information
samsonasik committed Jun 11, 2023
1 parent ea2ee12 commit 424b874
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 15 deletions.
2 changes: 1 addition & 1 deletion src/Kernel/RectorKernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ final class RectorKernel
/**
* @var string
*/
private const CACHE_KEY = 'v90';
private const CACHE_KEY = 'v91';

private ContainerInterface|null $container = null;

Expand Down
25 changes: 11 additions & 14 deletions src/NodeManipulator/ClassMethodPropertyFetchManipulator.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
use PhpParser\Node\Expr\StaticCall;
use PhpParser\Node\Expr\StaticPropertyFetch;
use PhpParser\Node\Param;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassMethod;
use PhpParser\NodeTraverser;
use Rector\Core\PhpParser\Node\BetterNodeFinder;
use Rector\NodeNameResolver\NodeNameResolver;
use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser;

Expand All @@ -23,7 +23,6 @@ final class ClassMethodPropertyFetchManipulator
public function __construct(
private readonly SimpleCallableNodeTraverser $simpleCallableNodeTraverser,
private readonly NodeNameResolver $nodeNameResolver,
private readonly BetterNodeFinder $betterNodeFinder,
private readonly FunctionLikeManipulator $functionLikeManipulator
) {
}
Expand All @@ -43,7 +42,11 @@ public function findParamAssignToPropertyName(ClassMethod $classMethod, string $

$this->simpleCallableNodeTraverser->traverseNodesWithCallable(
(array) $classMethod->stmts,
function (Node $node) use ($propertyName, &$assignedParamName, $classMethod): ?int {
function (Node $node) use ($propertyName, &$assignedParamName): ?int {
if ($node instanceof Class_) {
return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN;
}

if (! $node instanceof Assign) {
return null;
}
Expand All @@ -60,11 +63,6 @@ function (Node $node) use ($propertyName, &$assignedParamName, $classMethod): ?i
return null;
}

$parentClassMethod = $this->betterNodeFinder->findParentType($node, ClassMethod::class);
if ($parentClassMethod !== $classMethod) {
return null;
}

$assignedParamName = $this->nodeNameResolver->getName($node->expr);

return NodeTraverser::STOP_TRAVERSAL;
Expand Down Expand Up @@ -104,7 +102,11 @@ public function findAssignsToPropertyName(ClassMethod $classMethod, string $prop

$this->simpleCallableNodeTraverser->traverseNodesWithCallable(
(array) $classMethod->stmts,
function (Node $node) use ($propertyName, &$assignExprs, $paramNames, $classMethod): ?int {
function (Node $node) use ($propertyName, &$assignExprs, $paramNames): ?int {
if ($node instanceof Class_) {
return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN;
}

if (! $node instanceof Assign) {
return null;
}
Expand All @@ -122,11 +124,6 @@ function (Node $node) use ($propertyName, &$assignExprs, $paramNames, $classMeth
return null;
}

$parentClassMethod = $this->betterNodeFinder->findParentType($node, ClassMethod::class);
if ($parentClassMethod !== $classMethod) {
return null;
}

$assignExprs[] = $node->expr;
return null;
}
Expand Down

0 comments on commit 424b874

Please sign in to comment.