@@ -96,38 +96,28 @@ public function walk(VisitorInterface $visitor)
96
96
$ node = $ result ;
97
97
}
98
98
if ($ result !== NodeTraverser::DONT_TRAVERSE_CHILDREN ) {
99
- $ this ->walkChildren ($ this ->columns , $ visitor );
100
- $ this ->walkChildren ($ this ->from , $ visitor );
101
- $ this ->walkChildren ($ this ->where , $ visitor );
102
- $ this ->walkChildren ($ this ->group , $ visitor );
103
- $ this ->walkChildren ($ this ->having , $ visitor );
104
- $ this ->walkChildren ($ this ->order , $ visitor );
99
+ $ this ->walkChildren ($ this ->selects , $ visitor );
105
100
}
106
101
107
102
return $ visitor ->leaveNode ($ node );
108
103
}
109
104
110
- private function walkChildren (&$ children , VisitorInterface $ visitor )
105
+ /**
106
+ * @param Select[] $children
107
+ * @param VisitorInterface $visitor
108
+ */
109
+ private function walkChildren (array &$ children , VisitorInterface $ visitor )
111
110
{
112
111
if ($ children ) {
113
- if (is_array ($ children )) {
114
- foreach ($ children as $ key => $ operand ) {
115
- if ($ operand ) {
116
- $ result2 = $ operand ->walk ($ visitor );
117
- if ($ result2 === NodeTraverser::REMOVE_NODE ) {
118
- unset($ children [$ key ]);
119
- } elseif ($ result2 instanceof NodeInterface) {
120
- $ children [$ key ] = $ result2 ;
121
- }
112
+ foreach ($ children as $ key => $ operand ) {
113
+ if ($ operand ) {
114
+ $ result2 = $ operand ->walk ($ visitor );
115
+ if ($ result2 === NodeTraverser::REMOVE_NODE ) {
116
+ unset($ children [$ key ]);
117
+ } elseif ($ result2 instanceof NodeInterface) {
118
+ $ children [$ key ] = $ result2 ;
122
119
}
123
120
}
124
- } else {
125
- $ result2 = $ children ->walk ($ visitor );
126
- if ($ result2 === NodeTraverser::REMOVE_NODE ) {
127
- $ children = null ;
128
- } elseif ($ result2 instanceof NodeInterface) {
129
- $ children = $ result2 ;
130
- }
131
121
}
132
122
}
133
123
}
0 commit comments