diff --git a/patches/nikic-php-parser-lib-phpparser-nodetraverser-php.patch b/patches/nikic-php-parser-lib-phpparser-nodetraverser-php.patch new file mode 100644 index 0000000..776f9df --- /dev/null +++ b/patches/nikic-php-parser-lib-phpparser-nodetraverser-php.patch @@ -0,0 +1,55 @@ +--- /dev/null ++++ ../lib/PhpParser/NodeTraverser.php +@@ -119,7 +119,8 @@ + $traverseChildren = true; + $breakVisitorIndex = null; + +- foreach ($this->visitors as $visitorIndex => $visitor) { ++ $visitors = $this->getVisitorsForNode($subNode); ++ foreach ($visitors as $visitorIndex => $visitor) { + $return = $visitor->enterNode($subNode); + if (null !== $return) { + if ($return instanceof Node) { +@@ -149,7 +150,7 @@ + } + } + +- foreach ($this->visitors as $visitorIndex => $visitor) { ++ foreach ($visitors as $visitorIndex => $visitor) { + $return = $visitor->leaveNode($subNode); + + if (null !== $return) { +@@ -196,7 +197,8 @@ + $traverseChildren = true; + $breakVisitorIndex = null; + +- foreach ($this->visitors as $visitorIndex => $visitor) { ++ $visitors = $this->getVisitorsForNode($node); ++ foreach ($visitors as $visitorIndex => $visitor) { + $return = $visitor->enterNode($node); + if (null !== $return) { + if ($return instanceof Node) { +@@ -226,7 +228,7 @@ + } + } + +- foreach ($this->visitors as $visitorIndex => $visitor) { ++ foreach ($visitors as $visitorIndex => $visitor) { + $return = $visitor->leaveNode($node); + + if (null !== $return) { +@@ -270,6 +272,14 @@ + } + + return $nodes; ++ } ++ ++ /** ++ * @return NodeVisitor[] ++ */ ++ public function getVisitorsForNode(Node $node) ++ { ++ return $this->visitors; + } + + private function ensureReplacementReasonable($old, $new) {