@@ -255,7 +255,7 @@ public static function visit(object $root, array $visitor, ?array $keyMap = null
255255
256256 $ result = null ;
257257 if (! $ node instanceof NodeList) {
258- if (! ( $ node instanceof Node) ) {
258+ if (! $ node instanceof Node) {
259259 $ notNode = Utils::printSafe ($ node );
260260 throw new \Exception ("Invalid AST Node: {$ notNode }. " );
261261 }
@@ -283,7 +283,7 @@ public static function visit(object $root, array $visitor, ?array $keyMap = null
283283
284284 $ edits [] = [$ key , $ editValue ];
285285 if (! $ isLeaving ) {
286- if (! ( $ editValue instanceof Node) ) {
286+ if (! $ editValue instanceof Node) {
287287 array_pop ($ path );
288288 continue ;
289289 }
@@ -392,13 +392,14 @@ public static function visitInParallel(array $visitors): array
392392
393393 $ result = $ fn (...func_get_args ());
394394
395+ if ($ result === null ) {
396+ continue ;
397+ }
395398 if ($ result instanceof VisitorSkipNode) {
396399 $ skipping [$ i ] = $ node ;
397400 } elseif ($ result instanceof VisitorStop) {
398401 $ skipping [$ i ] = $ result ;
399- } elseif ($ result instanceof VisitorRemoveNode) {
400- return $ result ;
401- } elseif ($ result !== null ) {
402+ } else {
402403 return $ result ;
403404 }
404405 }
@@ -417,11 +418,14 @@ public static function visitInParallel(array $visitors): array
417418 if ($ fn !== null ) {
418419 $ result = $ fn (...func_get_args ());
419420
421+ if ($ result === null ) {
422+ continue ;
423+ }
420424 if ($ result instanceof VisitorStop) {
421425 $ skipping [$ i ] = $ result ;
422426 } elseif ($ result instanceof VisitorRemoveNode) {
423427 return $ result ;
424- } elseif ( $ result !== null ) {
428+ } else {
425429 return $ result ;
426430 }
427431 }
@@ -487,21 +491,23 @@ protected static function extractVisitFn(array $visitor, string $kind, bool $isL
487491 {
488492 $ kindVisitor = $ visitor [$ kind ] ?? null ;
489493
490- if (is_array ($ kindVisitor )) {
491- return $ isLeaving
492- ? $ kindVisitor ['leave ' ] ?? null
493- : $ kindVisitor ['enter ' ] ?? null ;
494- }
494+ if ($ kindVisitor !== null ) {
495+ if (is_array ($ kindVisitor )) {
496+ return $ isLeaving
497+ ? $ kindVisitor ['leave ' ] ?? null
498+ : $ kindVisitor ['enter ' ] ?? null ;
499+ }
495500
496- if ($ kindVisitor !== null && ! $ isLeaving ) {
497- return $ kindVisitor ;
501+ if (! $ isLeaving ) {
502+ return $ kindVisitor ;
503+ }
498504 }
499505
500506 $ specificVisitor = $ isLeaving
501507 ? $ visitor ['leave ' ] ?? null
502508 : $ visitor ['enter ' ] ?? null ;
503509
504- if (is_array ($ specificVisitor )) {
510+ if ($ specificVisitor !== null && is_array ($ specificVisitor )) {
505511 return $ specificVisitor [$ kind ] ?? null ;
506512 }
507513
0 commit comments