Commit | Line | Data |
---|---|---|
f21d7107 DM |
1 | pad.c AOK |
2 | ||
7f73a9f1 | 3 | "%s" variable %s masks earlier declaration in same scope |
f21d7107 DM |
4 | my $x; |
5 | my $x ; | |
6 | ||
b5c19bd7 | 7 | Variable "%s" will not stay shared |
f21d7107 DM |
8 | sub x { |
9 | my $x; | |
10 | sub y { | |
b5c19bd7 | 11 | sub { $x } |
f21d7107 DM |
12 | } |
13 | } | |
14 | ||
f21d7107 DM |
15 | sub x { |
16 | my $x; | |
17 | sub y { | |
b5c19bd7 | 18 | $x |
f21d7107 DM |
19 | } |
20 | } | |
b5c19bd7 | 21 | |
f21d7107 DM |
22 | "our" variable %s redeclared (Did you mean "local" instead of "our"?) |
23 | our $x; | |
24 | { | |
25 | our $x; | |
26 | } | |
27 | ||
28 | %s never introduced [pad_leavemy] TODO | |
29 | ||
30 | __END__ | |
31 | # pad.c | |
32 | use warnings 'misc' ; | |
33 | my $x ; | |
34 | my $x ; | |
35 | my $y = my $y ; | |
f2f96cd5 RGS |
36 | my $p ; |
37 | package X ; | |
38 | my $p ; | |
39 | package main ; | |
f21d7107 DM |
40 | no warnings 'misc' ; |
41 | my $x ; | |
42 | my $y ; | |
f2f96cd5 | 43 | my $p ; |
f21d7107 DM |
44 | EXPECT |
45 | "my" variable $x masks earlier declaration in same scope at - line 4. | |
46 | "my" variable $y masks earlier declaration in same statement at - line 5. | |
f2f96cd5 | 47 | "my" variable $p masks earlier declaration in same scope at - line 8. |
f21d7107 DM |
48 | ######## |
49 | # pad.c | |
f793795c RGS |
50 | use warnings 'misc' ; |
51 | our $x ; | |
f793795c RGS |
52 | my $x ; |
53 | our $y = my $y ; | |
f2f96cd5 RGS |
54 | our $p ; |
55 | package X ; | |
56 | my $p ; | |
57 | package main ; | |
f793795c RGS |
58 | no warnings 'misc' ; |
59 | our $z ; | |
60 | my $z ; | |
61 | our $t = my $t ; | |
f2f96cd5 RGS |
62 | our $q ; |
63 | package X ; | |
64 | my $q ; | |
f793795c RGS |
65 | EXPECT |
66 | "my" variable $x masks earlier declaration in same scope at - line 4. | |
67 | "my" variable $y masks earlier declaration in same statement at - line 5. | |
f2f96cd5 | 68 | "my" variable $p masks earlier declaration in same scope at - line 8. |
f793795c RGS |
69 | ######## |
70 | # pad.c | |
f793795c RGS |
71 | use warnings 'misc' ; |
72 | my $x ; | |
73 | our $x ; | |
74 | my $y = our $y ; | |
f2f96cd5 RGS |
75 | my $p ; |
76 | package X ; | |
77 | our $p ; | |
78 | package main ; | |
f793795c RGS |
79 | no warnings 'misc' ; |
80 | my $z ; | |
81 | our $z ; | |
82 | my $t = our $t ; | |
f2f96cd5 RGS |
83 | my $q ; |
84 | package X ; | |
85 | our $q ; | |
f793795c | 86 | EXPECT |
f2f96cd5 RGS |
87 | "our" variable $x masks earlier declaration in same scope at - line 4. |
88 | "our" variable $y masks earlier declaration in same statement at - line 5. | |
89 | "our" variable $p masks earlier declaration in same scope at - line 8. | |
f793795c RGS |
90 | ######## |
91 | # pad.c | |
f21d7107 DM |
92 | use warnings 'closure' ; |
93 | sub x { | |
94 | my $x; | |
95 | sub y { | |
96 | $x | |
97 | } | |
98 | } | |
99 | EXPECT | |
100 | Variable "$x" will not stay shared at - line 7. | |
101 | ######## | |
102 | # pad.c | |
103 | no warnings 'closure' ; | |
104 | sub x { | |
105 | my $x; | |
106 | sub y { | |
107 | $x | |
108 | } | |
109 | } | |
110 | EXPECT | |
111 | ||
112 | ######## | |
113 | # pad.c | |
114 | use warnings 'closure' ; | |
115 | sub x { | |
b5c19bd7 | 116 | my $x; |
f21d7107 | 117 | sub y { |
b5c19bd7 | 118 | sub { $x } |
f21d7107 DM |
119 | } |
120 | } | |
121 | EXPECT | |
b5c19bd7 DM |
122 | Variable "$x" will not stay shared at - line 6. |
123 | ######## | |
124 | # pad.c | |
125 | use warnings 'closure' ; | |
126 | sub x { | |
127 | my $x; | |
128 | sub { | |
129 | $x; | |
130 | sub y { | |
131 | $x | |
132 | } | |
133 | }->(); | |
134 | } | |
135 | EXPECT | |
136 | Variable "$x" will not stay shared at - line 9. | |
137 | ######## | |
138 | # pad.c | |
139 | use warnings 'closure' ; | |
140 | my $x; | |
141 | sub { | |
142 | $x; | |
143 | sub f { | |
144 | sub { $x }->(); | |
145 | } | |
146 | }->(); | |
147 | EXPECT | |
f21d7107 DM |
148 | |
149 | ######## | |
150 | # pad.c | |
151 | use warnings 'closure' ; | |
b5c19bd7 DM |
152 | sub { |
153 | my $x; | |
154 | sub f { $x } | |
155 | }->(); | |
156 | EXPECT | |
157 | Variable "$x" is not available at - line 5. | |
158 | ######## | |
159 | # pad.c | |
160 | use warnings 'closure' ; | |
161 | sub { | |
162 | my $x; | |
163 | eval 'sub f { $x }'; | |
164 | }->(); | |
165 | EXPECT | |
166 | ||
167 | ######## | |
168 | # pad.c | |
169 | use warnings 'closure' ; | |
170 | sub { | |
171 | my $x; | |
172 | sub f { eval '$x' } | |
173 | }->(); | |
174 | f(); | |
175 | EXPECT | |
451f421f | 176 | Variable "$x" is not available at (eval 1) line 1. |
b5c19bd7 DM |
177 | ######## |
178 | # pad.c | |
179 | use warnings 'closure' ; | |
f21d7107 | 180 | sub x { |
b5c19bd7 | 181 | our $x; |
f21d7107 | 182 | sub y { |
b5c19bd7 | 183 | $x |
f21d7107 DM |
184 | } |
185 | } | |
186 | EXPECT | |
b5c19bd7 DM |
187 | |
188 | ######## | |
189 | # pad.c | |
190 | # see bugid 1754 | |
191 | use warnings 'closure' ; | |
192 | sub f { | |
193 | my $x; | |
194 | sub { eval '$x' }; | |
195 | } | |
196 | f()->(); | |
197 | EXPECT | |
451f421f | 198 | Variable "$x" is not available at (eval 1) line 1. |
f21d7107 | 199 | ######## |
2740392c DM |
200 | use warnings 'closure' ; |
201 | { | |
202 | my $x = 1; | |
203 | $y = \$x; # force abandonment rather than clear-in-place at scope exit | |
204 | sub f2 { eval '$x' } | |
205 | } | |
206 | f2(); | |
207 | EXPECT | |
451f421f | 208 | Variable "$x" is not available at (eval 1) line 1. |
2740392c | 209 | ######## |
14f338dc DM |
210 | use warnings 'closure' ; |
211 | for my $x (1,2,3) { | |
212 | sub f { eval '$x' } | |
213 | f(); | |
214 | } | |
215 | f(); | |
216 | EXPECT | |
451f421f | 217 | Variable "$x" is not available at (eval 4) line 1. |
14f338dc | 218 | ######## |
f21d7107 DM |
219 | # pad.c |
220 | no warnings 'closure' ; | |
221 | sub x { | |
222 | my $x; | |
223 | sub y { | |
224 | sub { $x } | |
225 | } | |
226 | } | |
227 | EXPECT | |
228 | ||
229 | ######## | |
f2047bf1 FC |
230 | # pad.c |
231 | use warnings 'closure'; | |
232 | my $x; | |
233 | our $y; | |
234 | sub { $x = $y }->(); # should not warn about $y being unavailable | |
235 | EXPECT | |
236 | ######## | |
f21d7107 | 237 | use warnings 'misc' ; |
f2f96cd5 RGS |
238 | my $x; |
239 | { | |
240 | my $x; | |
241 | } | |
242 | EXPECT | |
243 | ######## | |
7f73a9f1 RGS |
244 | # pad.c |
245 | use warnings 'misc' ; | |
246 | our $x ; | |
247 | our $x ; | |
248 | our $y = our $y ; | |
249 | our $p ; | |
250 | package X ; | |
251 | our $p ; | |
252 | package main ; | |
253 | no warnings 'misc' ; | |
254 | our $a ; | |
255 | our $a ; | |
256 | our $b = our $b ; | |
257 | our $c ; | |
258 | package X ; | |
259 | our $c ; | |
260 | EXPECT | |
261 | "our" variable $x redeclared at - line 4. | |
262 | "our" variable $y redeclared at - line 5. | |
263 | ######## | |
f2f96cd5 | 264 | use warnings 'misc' ; |
f21d7107 DM |
265 | our $x; |
266 | { | |
267 | our $x; | |
268 | } | |
7f73a9f1 RGS |
269 | our $x; |
270 | no warnings 'misc' ; | |
271 | our $y; | |
272 | { | |
273 | our $y; | |
274 | } | |
275 | our $y; | |
f21d7107 DM |
276 | EXPECT |
277 | "our" variable $x redeclared at - line 4. | |
278 | (Did you mean "local" instead of "our"?) | |
7f73a9f1 | 279 | "our" variable $x redeclared at - line 6. |
929a0744 | 280 | ######## |
f2f96cd5 RGS |
281 | use warnings 'misc' ; |
282 | our $x; | |
283 | { | |
284 | my $x; | |
285 | } | |
7f73a9f1 RGS |
286 | no warnings 'misc' ; |
287 | our $y; | |
288 | { | |
289 | my $y; | |
290 | } | |
f2f96cd5 RGS |
291 | EXPECT |
292 | ######## | |
293 | use warnings 'misc' ; | |
294 | my $x; | |
295 | { | |
296 | our $x; | |
297 | } | |
7f73a9f1 RGS |
298 | no warnings 'misc' ; |
299 | my $y; | |
300 | { | |
301 | our $y; | |
302 | } | |
303 | EXPECT | |
304 | ######## | |
305 | use warnings 'misc' ; | |
306 | my $x; | |
307 | { | |
308 | my $x; | |
309 | } | |
310 | no warnings 'misc' ; | |
311 | my $y; | |
312 | { | |
313 | my $y; | |
314 | } | |
f2f96cd5 RGS |
315 | EXPECT |
316 | ######## | |
929a0744 DM |
317 | # an our var being introduced should suppress errors about global syms |
318 | use strict; | |
319 | use warnings; | |
320 | our $x unless $x; | |
321 | EXPECT | |
1456f925 NC |
322 | ######## |
323 | use warnings 'misc'; | |
324 | our $qunckkk; | |
325 | our $_; | |
326 | package clank_est; | |
327 | our $qunckkk; | |
328 | our $_; | |
329 | no warnings 'misc'; | |
330 | our $ouch; | |
331 | our $_; | |
332 | package whack; | |
333 | our $ouch; | |
334 | our $_; | |
335 | EXPECT | |
336 | "our" variable $_ redeclared at - line 6. | |
0727928e BF |
337 | ######## |
338 | use warnings 'misc'; | |
339 | BEGIN { binmode STDERR, 'utf8'; } | |
340 | { | |
341 | use utf8; | |
342 | my $ニコニコ; | |
343 | my $ニコニコ; | |
344 | } | |
345 | EXPECT | |
346 | "my" variable $ニコニコ masks earlier declaration in same scope at - line 6. | |
347 | ######## | |
348 | use warnings 'misc'; | |
349 | BEGIN { binmode STDERR, 'utf8'; } | |
350 | { | |
351 | use utf8; | |
352 | my $thìs; | |
353 | my $thìs; | |
354 | } | |
355 | EXPECT | |
356 | "my" variable $thìs masks earlier declaration in same scope at - line 6. | |
357 | ######## | |
358 | # pad.c | |
359 | use warnings 'closure' ; | |
360 | BEGIN { binmode STDERR, 'utf8'; } | |
361 | sub { | |
362 | use utf8; | |
363 | my $è; | |
364 | sub f { $è } | |
365 | }->(); | |
366 | EXPECT | |
367 | Variable "$è" is not available at - line 7. | |
368 | ######## | |
369 | # pad.c | |
370 | use warnings 'closure' ; | |
371 | BEGIN { binmode STDERR, 'utf8'; } | |
372 | sub { | |
373 | use utf8; | |
374 | my $ニ; | |
375 | sub f { $ニ } | |
376 | }->(); | |
377 | EXPECT | |
378 | Variable "$ニ" is not available at - line 7. | |
379 | ######## | |
380 | # pad.c | |
381 | use warnings 'closure' ; | |
382 | BEGIN { binmode STDERR, 'utf8'; } | |
383 | sub x { | |
384 | use utf8; | |
385 | my $に; | |
386 | sub y { | |
387 | $に | |
388 | } | |
389 | } | |
390 | EXPECT | |
391 | Variable "$に" will not stay shared at - line 9. | |
392 | ######## | |
393 | # pad.c | |
394 | use warnings 'closure' ; | |
395 | BEGIN { binmode STDERR, 'utf8'; } | |
396 | sub x { | |
397 | use utf8; | |
398 | my $に; | |
399 | sub y { | |
400 | sub { $に } | |
401 | } | |
402 | } | |
403 | EXPECT | |
404 | Variable "$に" will not stay shared at - line 8. | |
405 | ######## | |
406 | # pad.c | |
407 | use warnings 'closure' ; | |
408 | BEGIN { binmode STDERR, 'utf8'; } | |
409 | sub x { | |
410 | use utf8; | |
411 | my $に; | |
412 | sub { | |
413 | $に; | |
414 | sub y { | |
415 | $に | |
416 | } | |
417 | }->(); | |
418 | } | |
419 | EXPECT | |
420 | Variable "$に" will not stay shared at - line 11. | |
421 | ######## | |
422 | # pad.c | |
423 | use warnings 'closure' ; | |
424 | BEGIN { binmode STDERR, 'utf8'; } | |
425 | sub { | |
426 | use utf8; | |
427 | my $に; | |
428 | sub f { $に } | |
429 | }->(); | |
430 | EXPECT | |
431 | Variable "$に" is not available at - line 7. | |
432 | ######## | |
433 | # pad.c | |
434 | use warnings 'closure' ; | |
435 | BEGIN { binmode STDERR, 'utf8'; } | |
436 | sub { | |
437 | use utf8; | |
438 | my $に; | |
439 | sub f { eval '$に' } | |
440 | }->(); | |
441 | f(); | |
442 | EXPECT | |
451f421f | 443 | Variable "$に" is not available at (eval 1) line 1. |
0727928e BF |
444 | ######## |
445 | # pad.c | |
446 | # see bugid 1754 | |
447 | use warnings 'closure' ; | |
448 | BEGIN { binmode STDERR, 'utf8'; } | |
449 | sub f { | |
450 | use utf8; | |
451 | my $に; | |
452 | sub { eval '$に' }; | |
453 | } | |
454 | f()->(); | |
455 | EXPECT | |
451f421f | 456 | Variable "$に" is not available at (eval 1) line 1. |
0727928e BF |
457 | ######## |
458 | use warnings 'closure' ; | |
459 | BEGIN { binmode STDERR, 'utf8'; } | |
460 | { | |
461 | use utf8; | |
462 | my $に = 1; | |
463 | $y = \$に; # force abandonment rather than clear-in-place at scope exit | |
464 | sub f2 { eval '$に' } | |
465 | } | |
466 | f2(); | |
467 | EXPECT | |
451f421f | 468 | Variable "$に" is not available at (eval 1) line 1. |
0727928e BF |
469 | ######## |
470 | use warnings 'closure' ; | |
471 | BEGIN { binmode STDERR, 'utf8'; } | |
472 | use utf8; | |
473 | for my $に (1,2,3) { | |
474 | sub f { eval '$に' } | |
475 | f(); | |
476 | } | |
477 | f(); | |
478 | EXPECT | |
451f421f | 479 | Variable "$に" is not available at (eval 4) line 1. |
0727928e BF |
480 | ######## |
481 | # pad.c | |
482 | use warnings 'closure' ; | |
483 | BEGIN { binmode STDERR, 'utf8'; } | |
484 | sub x { | |
485 | use utf8; | |
486 | my $è; | |
487 | sub y { | |
488 | $è | |
489 | } | |
490 | } | |
491 | EXPECT | |
492 | Variable "$è" will not stay shared at - line 9. | |
493 | ######## | |
494 | # pad.c | |
495 | use warnings 'closure' ; | |
496 | BEGIN { binmode STDERR, 'utf8'; } | |
497 | sub x { | |
498 | use utf8; | |
499 | my $è; | |
500 | sub y { | |
501 | sub { $è } | |
502 | } | |
503 | } | |
504 | EXPECT | |
505 | Variable "$è" will not stay shared at - line 8. | |
506 | ######## | |
507 | # pad.c | |
508 | use warnings 'closure' ; | |
509 | BEGIN { binmode STDERR, 'utf8'; } | |
510 | sub x { | |
511 | use utf8; | |
512 | my $è; | |
513 | sub { | |
514 | $è; | |
515 | sub y { | |
516 | $è | |
517 | } | |
518 | }->(); | |
519 | } | |
520 | EXPECT | |
521 | Variable "$è" will not stay shared at - line 11. | |
522 | ######## | |
523 | # pad.c | |
524 | use warnings 'closure' ; | |
525 | BEGIN { binmode STDERR, 'utf8'; } | |
526 | sub { | |
527 | use utf8; | |
528 | my $è; | |
529 | sub f { $è } | |
530 | }->(); | |
531 | EXPECT | |
532 | Variable "$è" is not available at - line 7. | |
533 | ######## | |
534 | # pad.c | |
535 | use warnings 'closure' ; | |
536 | BEGIN { binmode STDERR, 'utf8'; } | |
537 | sub { | |
538 | use utf8; | |
539 | my $è; | |
540 | sub f { eval '$è' } | |
541 | }->(); | |
542 | f(); | |
543 | EXPECT | |
451f421f | 544 | Variable "$è" is not available at (eval 1) line 1. |
0727928e BF |
545 | ######## |
546 | # pad.c | |
547 | # see bugid 1754 | |
548 | use warnings 'closure' ; | |
549 | BEGIN { binmode STDERR, 'utf8'; } | |
550 | sub f { | |
551 | use utf8; | |
552 | my $è; | |
553 | sub { eval '$è' }; | |
554 | } | |
555 | f()->(); | |
556 | EXPECT | |
451f421f | 557 | Variable "$è" is not available at (eval 1) line 1. |
0727928e BF |
558 | ######## |
559 | use warnings 'closure' ; | |
560 | BEGIN { binmode STDERR, 'utf8'; } | |
561 | { | |
562 | use utf8; | |
563 | my $è = 1; | |
564 | $y = \$è; # force abandonment rather than clear-in-place at scope exit | |
565 | sub f2 { eval '$è' } | |
566 | } | |
567 | f2(); | |
568 | EXPECT | |
451f421f | 569 | Variable "$è" is not available at (eval 1) line 1. |
0727928e BF |
570 | ######## |
571 | use warnings 'closure' ; | |
572 | BEGIN { binmode STDERR, 'utf8'; } | |
573 | use utf8; | |
574 | for my $è (1,2,3) { | |
575 | sub f { eval '$è' } | |
576 | f(); | |
577 | } | |
578 | f(); | |
579 | EXPECT | |
451f421f | 580 | Variable "$è" is not available at (eval 4) line 1. |
0727928e | 581 | ######## |