5050use Rector \Core \Util \Reflection \PrivatesAccessor ;
5151use Rector \NodeNameResolver \NodeNameResolver ;
5252use Rector \NodeTypeResolver \Node \AttributeKey ;
53- use Rector \NodeTypeResolver \PHPStan \Scope \NodeVisitor \AssignedToNodeVisitor ;
54- use Rector \NodeTypeResolver \PHPStan \Scope \NodeVisitor \ByRefReturnNodeVisitor ;
55- use Rector \NodeTypeResolver \PHPStan \Scope \NodeVisitor \ByRefVariableNodeVisitor ;
56- use Rector \NodeTypeResolver \PHPStan \Scope \NodeVisitor \GlobalVariableNodeVisitor ;
57- use Rector \NodeTypeResolver \PHPStan \Scope \NodeVisitor \RemoveDeepChainMethodCallNodeVisitor ;
58- use Rector \NodeTypeResolver \PHPStan \Scope \NodeVisitor \StaticVariableNodeVisitor ;
53+ use Rector \NodeTypeResolver \PHPStan \Scope \Contract \NodeVisitor \ScopeResolverNodeVisitorInterface ;
5954use Webmozart \Assert \Assert ;
6055
6156/**
@@ -71,30 +66,26 @@ final class PHPStanNodeScopeResolver
7166
7267 private readonly NodeTraverser $ nodeTraverser ;
7368
69+ /**
70+ * @param ScopeResolverNodeVisitorInterface[] $nodeVisitors
71+ */
7472 public function __construct (
7573 private readonly ChangedFilesDetector $ changedFilesDetector ,
7674 private readonly DependencyResolver $ dependencyResolver ,
7775 private readonly NodeScopeResolver $ nodeScopeResolver ,
7876 private readonly ReflectionProvider $ reflectionProvider ,
79- RemoveDeepChainMethodCallNodeVisitor $ removeDeepChainMethodCallNodeVisitor ,
80- AssignedToNodeVisitor $ assignedToNodeVisitor ,
81- GlobalVariableNodeVisitor $ globalVariableNodeVisitor ,
82- StaticVariableNodeVisitor $ staticVariableNodeVisitor ,
83- ByRefVariableNodeVisitor $ byRefVariableNodeVisitor ,
84- ByRefReturnNodeVisitor $ byRefReturnNodeVisitor ,
77+ array $ nodeVisitors ,
8578 private readonly ScopeFactory $ scopeFactory ,
8679 private readonly PrivatesAccessor $ privatesAccessor ,
8780 private readonly NodeNameResolver $ nodeNameResolver ,
8881 private readonly BetterNodeFinder $ betterNodeFinder ,
8982 private readonly ClassAnalyzer $ classAnalyzer
9083 ) {
9184 $ this ->nodeTraverser = new NodeTraverser ();
92- $ this ->nodeTraverser ->addVisitor ($ removeDeepChainMethodCallNodeVisitor );
93- $ this ->nodeTraverser ->addVisitor ($ assignedToNodeVisitor );
94- $ this ->nodeTraverser ->addVisitor ($ globalVariableNodeVisitor );
95- $ this ->nodeTraverser ->addVisitor ($ staticVariableNodeVisitor );
96- $ this ->nodeTraverser ->addVisitor ($ byRefVariableNodeVisitor );
97- $ this ->nodeTraverser ->addVisitor ($ byRefReturnNodeVisitor );
85+
86+ foreach ($ nodeVisitors as $ nodeVisitor ) {
87+ $ this ->nodeTraverser ->addVisitor ($ nodeVisitor );
88+ }
9889 }
9990
10091 /**
0 commit comments