bb3e7fbead326115f8117378406d922de794324a
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / expr / uvs / indirectCall.test
1 UVS indirect calls
2 -----
3 <?php
4
5 id('var_dump')(1);
6 id('id')('var_dump')(2);
7 id()()('var_dump')(4);
8 id(['udef', 'id'])[1]()('var_dump')(5);
9 (function($x) { return $x; })('id')('var_dump')(8);
10 ($f = function($x = null) use (&$f) {
11     return $x ?: $f;
12 })()()()('var_dump')(9);
13 [$obj, 'id']()('id')($id)('var_dump')(10);
14 'id'()('id')('var_dump')(12);
15 ('i' . 'd')()('var_dump')(13);
16 '\id'('var_dump')(14);
17 -----
18 !!php7
19 array(
20     0: Expr_FuncCall(
21         name: Expr_FuncCall(
22             name: Name(
23                 parts: array(
24                     0: id
25                 )
26             )
27             args: array(
28                 0: Arg(
29                     value: Scalar_String(
30                         value: var_dump
31                     )
32                     byRef: false
33                     unpack: false
34                 )
35             )
36         )
37         args: array(
38             0: Arg(
39                 value: Scalar_LNumber(
40                     value: 1
41                 )
42                 byRef: false
43                 unpack: false
44             )
45         )
46     )
47     1: Expr_FuncCall(
48         name: Expr_FuncCall(
49             name: Expr_FuncCall(
50                 name: Name(
51                     parts: array(
52                         0: id
53                     )
54                 )
55                 args: array(
56                     0: Arg(
57                         value: Scalar_String(
58                             value: id
59                         )
60                         byRef: false
61                         unpack: false
62                     )
63                 )
64             )
65             args: array(
66                 0: Arg(
67                     value: Scalar_String(
68                         value: var_dump
69                     )
70                     byRef: false
71                     unpack: false
72                 )
73             )
74         )
75         args: array(
76             0: Arg(
77                 value: Scalar_LNumber(
78                     value: 2
79                 )
80                 byRef: false
81                 unpack: false
82             )
83         )
84     )
85     2: Expr_FuncCall(
86         name: Expr_FuncCall(
87             name: Expr_FuncCall(
88                 name: Expr_FuncCall(
89                     name: Name(
90                         parts: array(
91                             0: id
92                         )
93                     )
94                     args: array(
95                     )
96                 )
97                 args: array(
98                 )
99             )
100             args: array(
101                 0: Arg(
102                     value: Scalar_String(
103                         value: var_dump
104                     )
105                     byRef: false
106                     unpack: false
107                 )
108             )
109         )
110         args: array(
111             0: Arg(
112                 value: Scalar_LNumber(
113                     value: 4
114                 )
115                 byRef: false
116                 unpack: false
117             )
118         )
119     )
120     3: Expr_FuncCall(
121         name: Expr_FuncCall(
122             name: Expr_FuncCall(
123                 name: Expr_ArrayDimFetch(
124                     var: Expr_FuncCall(
125                         name: Name(
126                             parts: array(
127                                 0: id
128                             )
129                         )
130                         args: array(
131                             0: Arg(
132                                 value: Expr_Array(
133                                     items: array(
134                                         0: Expr_ArrayItem(
135                                             key: null
136                                             value: Scalar_String(
137                                                 value: udef
138                                             )
139                                             byRef: false
140                                         )
141                                         1: Expr_ArrayItem(
142                                             key: null
143                                             value: Scalar_String(
144                                                 value: id
145                                             )
146                                             byRef: false
147                                         )
148                                     )
149                                 )
150                                 byRef: false
151                                 unpack: false
152                             )
153                         )
154                     )
155                     dim: Scalar_LNumber(
156                         value: 1
157                     )
158                 )
159                 args: array(
160                 )
161             )
162             args: array(
163                 0: Arg(
164                     value: Scalar_String(
165                         value: var_dump
166                     )
167                     byRef: false
168                     unpack: false
169                 )
170             )
171         )
172         args: array(
173             0: Arg(
174                 value: Scalar_LNumber(
175                     value: 5
176                 )
177                 byRef: false
178                 unpack: false
179             )
180         )
181     )
182     4: Expr_FuncCall(
183         name: Expr_FuncCall(
184             name: Expr_FuncCall(
185                 name: Expr_Closure(
186                     static: false
187                     byRef: false
188                     params: array(
189                         0: Param(
190                             type: null
191                             byRef: false
192                             variadic: false
193                             name: x
194                             default: null
195                         )
196                     )
197                     uses: array(
198                     )
199                     returnType: null
200                     stmts: array(
201                         0: Stmt_Return(
202                             expr: Expr_Variable(
203                                 name: x
204                             )
205                         )
206                     )
207                 )
208                 args: array(
209                     0: Arg(
210                         value: Scalar_String(
211                             value: id
212                         )
213                         byRef: false
214                         unpack: false
215                     )
216                 )
217             )
218             args: array(
219                 0: Arg(
220                     value: Scalar_String(
221                         value: var_dump
222                     )
223                     byRef: false
224                     unpack: false
225                 )
226             )
227         )
228         args: array(
229             0: Arg(
230                 value: Scalar_LNumber(
231                     value: 8
232                 )
233                 byRef: false
234                 unpack: false
235             )
236         )
237     )
238     5: Expr_FuncCall(
239         name: Expr_FuncCall(
240             name: Expr_FuncCall(
241                 name: Expr_FuncCall(
242                     name: Expr_FuncCall(
243                         name: Expr_Assign(
244                             var: Expr_Variable(
245                                 name: f
246                             )
247                             expr: Expr_Closure(
248                                 static: false
249                                 byRef: false
250                                 params: array(
251                                     0: Param(
252                                         type: null
253                                         byRef: false
254                                         variadic: false
255                                         name: x
256                                         default: Expr_ConstFetch(
257                                             name: Name(
258                                                 parts: array(
259                                                     0: null
260                                                 )
261                                             )
262                                         )
263                                     )
264                                 )
265                                 uses: array(
266                                     0: Expr_ClosureUse(
267                                         var: f
268                                         byRef: true
269                                     )
270                                 )
271                                 returnType: null
272                                 stmts: array(
273                                     0: Stmt_Return(
274                                         expr: Expr_Ternary(
275                                             cond: Expr_Variable(
276                                                 name: x
277                                             )
278                                             if: null
279                                             else: Expr_Variable(
280                                                 name: f
281                                             )
282                                         )
283                                     )
284                                 )
285                             )
286                         )
287                         args: array(
288                         )
289                     )
290                     args: array(
291                     )
292                 )
293                 args: array(
294                 )
295             )
296             args: array(
297                 0: Arg(
298                     value: Scalar_String(
299                         value: var_dump
300                     )
301                     byRef: false
302                     unpack: false
303                 )
304             )
305         )
306         args: array(
307             0: Arg(
308                 value: Scalar_LNumber(
309                     value: 9
310                 )
311                 byRef: false
312                 unpack: false
313             )
314         )
315     )
316     6: Expr_FuncCall(
317         name: Expr_FuncCall(
318             name: Expr_FuncCall(
319                 name: Expr_FuncCall(
320                     name: Expr_FuncCall(
321                         name: Expr_Array(
322                             items: array(
323                                 0: Expr_ArrayItem(
324                                     key: null
325                                     value: Expr_Variable(
326                                         name: obj
327                                     )
328                                     byRef: false
329                                 )
330                                 1: Expr_ArrayItem(
331                                     key: null
332                                     value: Scalar_String(
333                                         value: id
334                                     )
335                                     byRef: false
336                                 )
337                             )
338                         )
339                         args: array(
340                         )
341                     )
342                     args: array(
343                         0: Arg(
344                             value: Scalar_String(
345                                 value: id
346                             )
347                             byRef: false
348                             unpack: false
349                         )
350                     )
351                 )
352                 args: array(
353                     0: Arg(
354                         value: Expr_Variable(
355                             name: id
356                         )
357                         byRef: false
358                         unpack: false
359                     )
360                 )
361             )
362             args: array(
363                 0: Arg(
364                     value: Scalar_String(
365                         value: var_dump
366                     )
367                     byRef: false
368                     unpack: false
369                 )
370             )
371         )
372         args: array(
373             0: Arg(
374                 value: Scalar_LNumber(
375                     value: 10
376                 )
377                 byRef: false
378                 unpack: false
379             )
380         )
381     )
382     7: Expr_FuncCall(
383         name: Expr_FuncCall(
384             name: Expr_FuncCall(
385                 name: Expr_FuncCall(
386                     name: Scalar_String(
387                         value: id
388                     )
389                     args: array(
390                     )
391                 )
392                 args: array(
393                     0: Arg(
394                         value: Scalar_String(
395                             value: id
396                         )
397                         byRef: false
398                         unpack: false
399                     )
400                 )
401             )
402             args: array(
403                 0: Arg(
404                     value: Scalar_String(
405                         value: var_dump
406                     )
407                     byRef: false
408                     unpack: false
409                 )
410             )
411         )
412         args: array(
413             0: Arg(
414                 value: Scalar_LNumber(
415                     value: 12
416                 )
417                 byRef: false
418                 unpack: false
419             )
420         )
421     )
422     8: Expr_FuncCall(
423         name: Expr_FuncCall(
424             name: Expr_FuncCall(
425                 name: Expr_BinaryOp_Concat(
426                     left: Scalar_String(
427                         value: i
428                     )
429                     right: Scalar_String(
430                         value: d
431                     )
432                 )
433                 args: array(
434                 )
435             )
436             args: array(
437                 0: Arg(
438                     value: Scalar_String(
439                         value: var_dump
440                     )
441                     byRef: false
442                     unpack: false
443                 )
444             )
445         )
446         args: array(
447             0: Arg(
448                 value: Scalar_LNumber(
449                     value: 13
450                 )
451                 byRef: false
452                 unpack: false
453             )
454         )
455     )
456     9: Expr_FuncCall(
457         name: Expr_FuncCall(
458             name: Scalar_String(
459                 value: \id
460             )
461             args: array(
462                 0: Arg(
463                     value: Scalar_String(
464                         value: var_dump
465                     )
466                     byRef: false
467                     unpack: false
468                 )
469             )
470         )
471         args: array(
472             0: Arg(
473                 value: Scalar_LNumber(
474                     value: 14
475                 )
476                 byRef: false
477                 unpack: false
478             )
479         )
480     )
481 )