Security update for Core, with self-updated composer
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / stmt / generator / yieldPrecedence.test
1 Yield operator precedence
2 -----
3 <?php
4
5 function gen() {
6     yield "a" . "b";
7     yield "a" or die;
8     yield "k" => "a" . "b";
9     yield "k" => "a" or die;
10     var_dump([yield "k" => "a" . "b"]);
11     yield yield "k1" => yield "k2" => "a" . "b";
12     yield yield "k1" => (yield "k2") => "a" . "b";
13     var_dump([yield "k1" => yield "k2" => "a" . "b"]);
14     var_dump([yield "k1" => (yield "k2") => "a" . "b"]);
15 }
16 -----
17 !!php7
18 array(
19     0: Stmt_Function(
20         byRef: false
21         name: gen
22         params: array(
23         )
24         returnType: null
25         stmts: array(
26             0: Expr_Yield(
27                 key: null
28                 value: Expr_BinaryOp_Concat(
29                     left: Scalar_String(
30                         value: a
31                     )
32                     right: Scalar_String(
33                         value: b
34                     )
35                 )
36             )
37             1: Expr_BinaryOp_LogicalOr(
38                 left: Expr_Yield(
39                     key: null
40                     value: Scalar_String(
41                         value: a
42                     )
43                 )
44                 right: Expr_Exit(
45                     expr: null
46                 )
47             )
48             2: Expr_Yield(
49                 key: Scalar_String(
50                     value: k
51                 )
52                 value: Expr_BinaryOp_Concat(
53                     left: Scalar_String(
54                         value: a
55                     )
56                     right: Scalar_String(
57                         value: b
58                     )
59                 )
60             )
61             3: Expr_BinaryOp_LogicalOr(
62                 left: Expr_Yield(
63                     key: Scalar_String(
64                         value: k
65                     )
66                     value: Scalar_String(
67                         value: a
68                     )
69                 )
70                 right: Expr_Exit(
71                     expr: null
72                 )
73             )
74             4: Expr_FuncCall(
75                 name: Name(
76                     parts: array(
77                         0: var_dump
78                     )
79                 )
80                 args: array(
81                     0: Arg(
82                         value: Expr_Array(
83                             items: array(
84                                 0: Expr_ArrayItem(
85                                     key: null
86                                     value: Expr_Yield(
87                                         key: Scalar_String(
88                                             value: k
89                                         )
90                                         value: Expr_BinaryOp_Concat(
91                                             left: Scalar_String(
92                                                 value: a
93                                             )
94                                             right: Scalar_String(
95                                                 value: b
96                                             )
97                                         )
98                                     )
99                                     byRef: false
100                                 )
101                             )
102                         )
103                         byRef: false
104                         unpack: false
105                     )
106                 )
107             )
108             5: Expr_Yield(
109                 key: null
110                 value: Expr_Yield(
111                     key: Scalar_String(
112                         value: k1
113                     )
114                     value: Expr_Yield(
115                         key: Scalar_String(
116                             value: k2
117                         )
118                         value: Expr_BinaryOp_Concat(
119                             left: Scalar_String(
120                                 value: a
121                             )
122                             right: Scalar_String(
123                                 value: b
124                             )
125                         )
126                     )
127                 )
128             )
129             6: Expr_Yield(
130                 key: Expr_Yield(
131                     key: Scalar_String(
132                         value: k1
133                     )
134                     value: Expr_Yield(
135                         key: null
136                         value: Scalar_String(
137                             value: k2
138                         )
139                     )
140                 )
141                 value: Expr_BinaryOp_Concat(
142                     left: Scalar_String(
143                         value: a
144                     )
145                     right: Scalar_String(
146                         value: b
147                     )
148                 )
149             )
150             7: Expr_FuncCall(
151                 name: Name(
152                     parts: array(
153                         0: var_dump
154                     )
155                 )
156                 args: array(
157                     0: Arg(
158                         value: Expr_Array(
159                             items: array(
160                                 0: Expr_ArrayItem(
161                                     key: null
162                                     value: Expr_Yield(
163                                         key: Scalar_String(
164                                             value: k1
165                                         )
166                                         value: Expr_Yield(
167                                             key: Scalar_String(
168                                                 value: k2
169                                             )
170                                             value: Expr_BinaryOp_Concat(
171                                                 left: Scalar_String(
172                                                     value: a
173                                                 )
174                                                 right: Scalar_String(
175                                                     value: b
176                                                 )
177                                             )
178                                         )
179                                     )
180                                     byRef: false
181                                 )
182                             )
183                         )
184                         byRef: false
185                         unpack: false
186                     )
187                 )
188             )
189             8: Expr_FuncCall(
190                 name: Name(
191                     parts: array(
192                         0: var_dump
193                     )
194                 )
195                 args: array(
196                     0: Arg(
197                         value: Expr_Array(
198                             items: array(
199                                 0: Expr_ArrayItem(
200                                     key: Expr_Yield(
201                                         key: Scalar_String(
202                                             value: k1
203                                         )
204                                         value: Expr_Yield(
205                                             key: null
206                                             value: Scalar_String(
207                                                 value: k2
208                                             )
209                                         )
210                                     )
211                                     value: Expr_BinaryOp_Concat(
212                                         left: Scalar_String(
213                                             value: a
214                                         )
215                                         right: Scalar_String(
216                                             value: b
217                                         )
218                                     )
219                                     byRef: false
220                                 )
221                             )
222                         )
223                         byRef: false
224                         unpack: false
225                     )
226                 )
227             )
228         )
229     )
230 )