%PDF- %PDF-
Direktori : /home2/vacivi36/code/vendor/rector/rector/rules/Naming/ValueObjectFactory/ |
Current File : //home2/vacivi36/code/vendor/rector/rector/rules/Naming/ValueObjectFactory/ParamRenameFactory.php |
<?php declare (strict_types=1); namespace Rector\Naming\ValueObjectFactory; use PhpParser\Node\Expr\ArrowFunction; use PhpParser\Node\Expr\Closure; use PhpParser\Node\FunctionLike; use PhpParser\Node\Param; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Function_; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\PhpParser\Node\BetterNodeFinder; use Rector\Naming\ValueObject\ParamRename; use Rector\NodeNameResolver\NodeNameResolver; final class ParamRenameFactory { /** * @readonly * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; /** * @readonly * @var \Rector\Core\PhpParser\Node\BetterNodeFinder */ private $betterNodeFinder; public function __construct(NodeNameResolver $nodeNameResolver, BetterNodeFinder $betterNodeFinder) { $this->nodeNameResolver = $nodeNameResolver; $this->betterNodeFinder = $betterNodeFinder; } public function createFromResolvedExpectedName(Param $param, string $expectedName) : ?ParamRename { /** @var ClassMethod|Function_|Closure|ArrowFunction|null $functionLike */ $functionLike = $this->betterNodeFinder->findParentType($param, FunctionLike::class); if ($functionLike === null) { throw new ShouldNotHappenException("There shouldn't be a param outside of FunctionLike"); } $currentName = $this->nodeNameResolver->getName($param->var); if ($currentName === null) { return null; } return new ParamRename($currentName, $expectedName, $param, $param->var, $functionLike); } }