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