File tree Expand file tree Collapse file tree 6 files changed +21
-7
lines changed
NodeTypeResolver/PHPStan/Scope/NodeVisitor Expand file tree Collapse file tree 6 files changed +21
-7
lines changed Original file line number Diff line number Diff line change 88use PhpParser \Node ;
99use PhpParser \Node \Expr \Assign ;
1010use PhpParser \Node \Expr \AssignOp ;
11- use PhpParser \Node \Expr \Closure ;
1211use PhpParser \Node \Expr \Ternary ;
1312use PhpParser \Node \Expr \Variable ;
1413use PhpParser \Node \Stmt ;
Original file line number Diff line number Diff line change 66
77use PhpParser \Node ;
88use PhpParser \Node \Expr ;
9- use PhpParser \Node \Stmt ;
109use PhpParser \Node \Stmt \Else_ ;
1110use PhpParser \Node \Stmt \If_ ;
1211use PhpParser \Node \Stmt \Return_ ;
Original file line number Diff line number Diff line change 66
77use PhpParser \Node ;
88use PhpParser \Node \Expr ;
9- use PhpParser \Node \Expr \Closure ;
109use PhpParser \Node \Expr \Variable ;
1110use PhpParser \Node \Stmt ;
1211use PhpParser \Node \Stmt \ClassMethod ;
Original file line number Diff line number Diff line change 1212use PhpParser \Node \Stmt \Global_ ;
1313use PhpParser \NodeVisitor ;
1414use PhpParser \NodeVisitorAbstract ;
15- use Rector \Contract \PhpParser \Node \StmtsAwareInterface ;
1615use Rector \NodeTypeResolver \Node \AttributeKey ;
1716use Rector \NodeTypeResolver \PHPStan \Scope \Contract \NodeVisitor \ScopeResolverNodeVisitorInterface ;
1817use Rector \PhpDocParser \NodeTraverser \SimpleCallableNodeTraverser ;
18+ use Rector \PhpParser \NodeGroups ;
19+ use Webmozart \Assert \Assert ;
1920
2021final class GlobalVariableNodeVisitor extends NodeVisitorAbstract implements ScopeResolverNodeVisitorInterface
2122{
@@ -26,10 +27,12 @@ public function __construct(
2627
2728 public function enterNode (Node $ node ): ?Node
2829 {
29- if (! $ node instanceof StmtsAwareInterface ) {
30+ if (! NodeGroups:: matchesStmtsAware ( $ node) ) {
3031 return null ;
3132 }
3233
34+ Assert::propertyExists ($ node , 'stmts ' );
35+
3336 if ($ node ->stmts === null ) {
3437 return null ;
3538 }
Original file line number Diff line number Diff line change 1212use PhpParser \Node \Stmt \Static_ ;
1313use PhpParser \NodeVisitor ;
1414use PhpParser \NodeVisitorAbstract ;
15- use Rector \Contract \PhpParser \Node \StmtsAwareInterface ;
1615use Rector \NodeTypeResolver \Node \AttributeKey ;
1716use Rector \NodeTypeResolver \PHPStan \Scope \Contract \NodeVisitor \ScopeResolverNodeVisitorInterface ;
1817use Rector \PhpDocParser \NodeTraverser \SimpleCallableNodeTraverser ;
18+ use Rector \PhpParser \NodeGroups ;
19+ use Webmozart \Assert \Assert ;
1920
2021final class StaticVariableNodeVisitor extends NodeVisitorAbstract implements ScopeResolverNodeVisitorInterface
2122{
@@ -26,10 +27,12 @@ public function __construct(
2627
2728 public function enterNode (Node $ node ): ?Node
2829 {
29- if (! $ node instanceof StmtsAwareInterface ) {
30+ if (! NodeGroups:: matchesStmtsAware ( $ node) ) {
3031 return null ;
3132 }
3233
34+ Assert::propertyExists ($ node , 'stmts ' );
35+
3336 if ($ node ->stmts === null ) {
3437 return null ;
3538 }
Original file line number Diff line number Diff line change @@ -31,4 +31,15 @@ final class NodeGroups
3131 // custom Rector node
3232 FileWithoutNamespace::class,
3333 ];
34+
35+ public static function matchesStmtsAware (\PhpParser \Node $ node ): bool
36+ {
37+ foreach (self ::STMTS_AWARE_NODES as $ stmtAwareNodeClass ) {
38+ if (is_a ($ node , $ stmtAwareNodeClass )) {
39+ return true ;
40+ }
41+ }
42+
43+ return false ;
44+ }
3445}
You can’t perform that action at this time.
0 commit comments