Skip to content

Commit

Permalink
[NodeManipulator] Remove parent lookup on ClassConstManipulator (#4236)
Browse files Browse the repository at this point in the history
  • Loading branch information
samsonasik committed Jun 16, 2023
1 parent 6488506 commit d50b87a
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/NodeManipulator/ClassConstManipulator.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,32 @@

use PhpParser\Node;
use PhpParser\Node\Expr\ClassConstFetch;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassConst;
use PhpParser\Node\Stmt\ClassLike;
use PhpParser\Node\Stmt\Enum_;
use PHPStan\Reflection\ClassReflection;
use Rector\Core\PhpParser\AstResolver;
use Rector\Core\PhpParser\Node\BetterNodeFinder;
use Rector\Core\Reflection\ReflectionResolver;
use Rector\NodeNameResolver\NodeNameResolver;

final class ClassConstManipulator
{
public function __construct(
private readonly BetterNodeFinder $betterNodeFinder,
private readonly NodeNameResolver $nodeNameResolver,
private readonly AstResolver $astResolver
private readonly AstResolver $astResolver,
private readonly ReflectionResolver $reflectionResolver
) {
}

public function hasClassConstFetch(ClassConst $classConst, ClassReflection $classReflection): bool
{
$class = $this->betterNodeFinder->findParentByTypes($classConst, [Class_::class, Enum_::class]);
if (! $class instanceof ClassLike) {
$classReflection = $this->reflectionResolver->resolveClassReflection($classConst);
if (! $classReflection instanceof ClassReflection || (! $classReflection->isClass() && ! $classReflection->isEnum())) {
return true;
}

$className = (string) $this->nodeNameResolver->getName($class);
$className = $classReflection->getName();
foreach ($classReflection->getAncestors() as $ancestorClassReflection) {
$ancestorClass = $this->astResolver->resolveClassFromClassReflection($ancestorClassReflection);

Expand Down

0 comments on commit d50b87a

Please sign in to comment.