| @@ -178,9 +178,9 @@ | ||
| 178 | 178 | { |
| 179 | 179 | $this->dispatch($node['children'][0]); |
| 180 | 180 | $merged = $this->makeVar('merged'); |
| 181 | 181 | $val = $this->makeVar('val'); |
| 182 | - $this->write('// Visiting merge node')->write('if (!Utils::isArray($value)) {')->indent()->write('$value = null;')->outdent()->write('} else {')->indent()->write('%s = [];', $merged)->write('foreach ($value as %s) {', $val)->indent()->write('if (is_array(%s) && isset(%s[0])) {', $val, $val)->indent()->write('%s = array_merge(%s, %s);', $merged, $merged, $val)->outdent()->write('} elseif (%s !== []) {', $val)->indent()->write('%s[] = %s;', $merged, $val)->outdent()->write('}')->outdent()->write('}')->write('$value = %s;', $merged)->outdent()->write('}'); | |
| 182 | + $this->write('// Visiting merge node')->write('if (!Utils::isArray($value)) {')->indent()->write('$value = null;')->outdent()->write('} else {')->indent()->write('%s = [];', $merged)->write('foreach ($value as %s) {', $val)->indent()->write('if (is_array(%s) && array_key_exists(0, %s)) {', $val, $val)->indent()->write('%s = array_merge(%s, %s);', $merged, $merged, $val)->outdent()->write('} elseif (%s !== []) {', $val)->indent()->write('%s[] = %s;', $merged, $val)->outdent()->write('}')->outdent()->write('}')->write('$value = %s;', $merged)->outdent()->write('}'); | |
| 183 | 183 | return $this; |
| 184 | 184 | } |
| 185 | 185 | private function visit_projection(array $node) |
| 186 | 186 | { |