BossBey File Manager
PHP:
7.4.33
OS:
Linux
User:
root
Root
/
opt
/
cpanel
/
ea-wappspector
/
vendor
/
rector
/
rector
/
src
/
NodeTypeResolver
📤 Upload
📝 New File
📁 New Folder
Close
Editing: NodeScopeAndMetadataDecorator.php
<?php declare (strict_types=1); namespace Rector\NodeTypeResolver; use PhpParser\Node\Stmt; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\CloningVisitor; use Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver; use Rector\PhpParser\NodeTraverser\FileWithoutNamespaceNodeTraverser; final class NodeScopeAndMetadataDecorator { /** * @readonly * @var \Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver */ private $phpStanNodeScopeResolver; /** * @readonly * @var \Rector\PhpParser\NodeTraverser\FileWithoutNamespaceNodeTraverser */ private $fileWithoutNamespaceNodeTraverser; /** * @readonly * @var \PhpParser\NodeTraverser */ private $nodeTraverser; public function __construct(CloningVisitor $cloningVisitor, PHPStanNodeScopeResolver $phpStanNodeScopeResolver, FileWithoutNamespaceNodeTraverser $fileWithoutNamespaceNodeTraverser) { $this->phpStanNodeScopeResolver = $phpStanNodeScopeResolver; $this->fileWithoutNamespaceNodeTraverser = $fileWithoutNamespaceNodeTraverser; $this->nodeTraverser = new NodeTraverser(); // needed for format preserving printing $this->nodeTraverser->addVisitor($cloningVisitor); } /** * @param Stmt[] $stmts * @return Stmt[] */ public function decorateNodesFromFile(string $filePath, array $stmts) : array { $stmts = $this->fileWithoutNamespaceNodeTraverser->traverse($stmts); $stmts = $this->phpStanNodeScopeResolver->processNodes($stmts, $filePath); return $this->nodeTraverser->traverse($stmts); } }
Save
Cancel