@@ -173,6 +173,50 @@ public function dataIsAlwaysTerminating(): array
173173 'while (true) { break; } ' ,
174174 false ,
175175 ],
176+ [
177+ 'while (true) { exit; } ' ,
178+ true ,
179+ ],
180+ [
181+ 'while (true) { while (true) { } } ' ,
182+ true ,
183+ ],
184+ [
185+ 'while (true) { while (true) { return; } } ' ,
186+ true ,
187+ ],
188+ [
189+ 'while (true) { while (true) { break; } } ' ,
190+ true ,
191+ ],
192+ [
193+ 'while (true) { while (true) { exit; } } ' ,
194+ true ,
195+ ],
196+ [
197+ 'while (true) { while (true) { break 2; } } ' ,
198+ false ,
199+ ],
200+ [
201+ 'while (true) { while ($x) { } } ' ,
202+ true ,
203+ ],
204+ [
205+ 'while (true) { while ($x) { return; } } ' ,
206+ true ,
207+ ],
208+ [
209+ 'while (true) { while ($x) { break; } } ' ,
210+ true ,
211+ ],
212+ [
213+ 'while (true) { while ($x) { exit; } } ' ,
214+ true ,
215+ ],
216+ [
217+ 'while (true) { while ($x) { break 2; } } ' ,
218+ false ,
219+ ],
176220 [
177221 'for (;;) { } ' ,
178222 true ,
@@ -185,6 +229,50 @@ public function dataIsAlwaysTerminating(): array
185229 'for (;;) { break; } ' ,
186230 false ,
187231 ],
232+ [
233+ 'for (;;) { exit; } ' ,
234+ true ,
235+ ],
236+ [
237+ 'for (;;) { for (;;) { } } ' ,
238+ true ,
239+ ],
240+ [
241+ 'for (;;) { for (;;) { return; } } ' ,
242+ true ,
243+ ],
244+ [
245+ 'for (;;) { for (;;) { break; } } ' ,
246+ true ,
247+ ],
248+ [
249+ 'for (;;) { for (;;) { exit; } } ' ,
250+ true ,
251+ ],
252+ [
253+ 'for (;;) { for (;;) { break 2; } } ' ,
254+ false ,
255+ ],
256+ [
257+ 'for (;;) { for ($i = 0; $i< 5; $i++) { } } ' ,
258+ true ,
259+ ],
260+ [
261+ 'for (;;) { for ($i = 0; $i< 5; $i++) { return; } } ' ,
262+ true ,
263+ ],
264+ [
265+ 'for (;;) { for ($i = 0; $i< 5; $i++) { break; } } ' ,
266+ true ,
267+ ],
268+ [
269+ 'for (;;) { for ($i = 0; $i< 5; $i++) { exit; } } ' ,
270+ true ,
271+ ],
272+ [
273+ 'for (;;) { for ($i = 0; $i< 5; $i++) { break 2; } } ' ,
274+ false ,
275+ ],
188276 [
189277 'do { } while (doFoo()); ' ,
190278 false ,
0 commit comments