for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
/*
* This file is part of the humbug/php-scoper package.
*
* Copyright (c) 2017 Théo FIDRY <[email protected]>,
* Pádraic Brady <[email protected]>
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Humbug\PhpScoper\PhpParser\NodeVisitor;
use Humbug\PhpScoper\PhpParser\NodeVisitor\Resolver\IdentifierResolver;
use PhpParser\Node;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\Interface_;
use PhpParser\NodeVisitorAbstract;
/**
* In some contexts we need to resolve identifiers but they can no longer be
* resolved on the fly. For those, we store the resolved identifier as an
* attribute.
* @see ClassAliasStmtAppender
* @private
final class IdentifierNameAppender extends NodeVisitorAbstract
{
private IdentifierResolver $identifierResolver;
public function __construct(IdentifierResolver $identifierResolver)
$this->identifierResolver = $identifierResolver;
}
public function enterNode(Node $node): ?Node
if (!($node instanceof Class_ || $node instanceof Interface_)) {
return null;
$name = $node->name;
if (null === $name) {
$resolvedName = $this->identifierResolver->resolveIdentifier($name);
$name->setAttribute('resolvedName', $resolvedName);