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 | |
176 | Variable "$x" is not available at (eval 1) line 2. | |
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 | |
198 | Variable "$x" is not available at (eval 1) line 2. | |
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 | |
208 | Variable "$x" is not available at (eval 1) line 2. | |
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 | |
217 | Variable "$x" is not available at (eval 4) line 2. | |
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 | ######## | |
230 | use warnings 'misc' ; | |
f2f96cd5 RGS |
231 | my $x; |
232 | { | |
233 | my $x; | |
234 | } | |
235 | EXPECT | |
236 | ######## | |
7f73a9f1 RGS |
237 | # pad.c |
238 | use warnings 'misc' ; | |
239 | our $x ; | |
240 | our $x ; | |
241 | our $y = our $y ; | |
242 | our $p ; | |
243 | package X ; | |
244 | our $p ; | |
245 | package main ; | |
246 | no warnings 'misc' ; | |
247 | our $a ; | |
248 | our $a ; | |
249 | our $b = our $b ; | |
250 | our $c ; | |
251 | package X ; | |
252 | our $c ; | |
253 | EXPECT | |
254 | "our" variable $x redeclared at - line 4. | |
255 | "our" variable $y redeclared at - line 5. | |
256 | ######## | |
f2f96cd5 | 257 | use warnings 'misc' ; |
f21d7107 DM |
258 | our $x; |
259 | { | |
260 | our $x; | |
261 | } | |
7f73a9f1 RGS |
262 | our $x; |
263 | no warnings 'misc' ; | |
264 | our $y; | |
265 | { | |
266 | our $y; | |
267 | } | |
268 | our $y; | |
f21d7107 DM |
269 | EXPECT |
270 | "our" variable $x redeclared at - line 4. | |
271 | (Did you mean "local" instead of "our"?) | |
7f73a9f1 | 272 | "our" variable $x redeclared at - line 6. |
929a0744 | 273 | ######## |
f2f96cd5 RGS |
274 | use warnings 'misc' ; |
275 | our $x; | |
276 | { | |
277 | my $x; | |
278 | } | |
7f73a9f1 RGS |
279 | no warnings 'misc' ; |
280 | our $y; | |
281 | { | |
282 | my $y; | |
283 | } | |
f2f96cd5 RGS |
284 | EXPECT |
285 | ######## | |
286 | use warnings 'misc' ; | |
287 | my $x; | |
288 | { | |
289 | our $x; | |
290 | } | |
7f73a9f1 RGS |
291 | no warnings 'misc' ; |
292 | my $y; | |
293 | { | |
294 | our $y; | |
295 | } | |
296 | EXPECT | |
297 | ######## | |
298 | use warnings 'misc' ; | |
299 | my $x; | |
300 | { | |
301 | my $x; | |
302 | } | |
303 | no warnings 'misc' ; | |
304 | my $y; | |
305 | { | |
306 | my $y; | |
307 | } | |
f2f96cd5 RGS |
308 | EXPECT |
309 | ######## | |
929a0744 DM |
310 | # an our var being introduced should suppress errors about global syms |
311 | use strict; | |
312 | use warnings; | |
313 | our $x unless $x; | |
314 | EXPECT | |
1456f925 NC |
315 | ######## |
316 | use warnings 'misc'; | |
317 | our $qunckkk; | |
318 | our $_; | |
319 | package clank_est; | |
320 | our $qunckkk; | |
321 | our $_; | |
322 | no warnings 'misc'; | |
323 | our $ouch; | |
324 | our $_; | |
325 | package whack; | |
326 | our $ouch; | |
327 | our $_; | |
328 | EXPECT | |
329 | "our" variable $_ redeclared at - line 6. | |
0727928e BF |
330 | ######## |
331 | use warnings 'misc'; | |
332 | BEGIN { binmode STDERR, 'utf8'; } | |
333 | { | |
334 | use utf8; | |
335 | my $ニコニコ; | |
336 | my $ニコニコ; | |
337 | } | |
338 | EXPECT | |
339 | "my" variable $ニコニコ masks earlier declaration in same scope at - line 6. | |
340 | ######## | |
341 | use warnings 'misc'; | |
342 | BEGIN { binmode STDERR, 'utf8'; } | |
343 | { | |
344 | use utf8; | |
345 | my $thìs; | |
346 | my $thìs; | |
347 | } | |
348 | EXPECT | |
349 | "my" variable $thìs masks earlier declaration in same scope at - line 6. | |
350 | ######## | |
351 | # pad.c | |
352 | use warnings 'closure' ; | |
353 | BEGIN { binmode STDERR, 'utf8'; } | |
354 | sub { | |
355 | use utf8; | |
356 | my $è; | |
357 | sub f { $è } | |
358 | }->(); | |
359 | EXPECT | |
360 | Variable "$è" is not available at - line 7. | |
361 | ######## | |
362 | # pad.c | |
363 | use warnings 'closure' ; | |
364 | BEGIN { binmode STDERR, 'utf8'; } | |
365 | sub { | |
366 | use utf8; | |
367 | my $ニ; | |
368 | sub f { $ニ } | |
369 | }->(); | |
370 | EXPECT | |
371 | Variable "$ニ" is not available at - line 7. | |
372 | ######## | |
373 | # pad.c | |
374 | use warnings 'closure' ; | |
375 | BEGIN { binmode STDERR, 'utf8'; } | |
376 | sub x { | |
377 | use utf8; | |
378 | my $に; | |
379 | sub y { | |
380 | $に | |
381 | } | |
382 | } | |
383 | EXPECT | |
384 | Variable "$に" will not stay shared at - line 9. | |
385 | ######## | |
386 | # pad.c | |
387 | use warnings 'closure' ; | |
388 | BEGIN { binmode STDERR, 'utf8'; } | |
389 | sub x { | |
390 | use utf8; | |
391 | my $に; | |
392 | sub y { | |
393 | sub { $に } | |
394 | } | |
395 | } | |
396 | EXPECT | |
397 | Variable "$に" will not stay shared at - line 8. | |
398 | ######## | |
399 | # pad.c | |
400 | use warnings 'closure' ; | |
401 | BEGIN { binmode STDERR, 'utf8'; } | |
402 | sub x { | |
403 | use utf8; | |
404 | my $に; | |
405 | sub { | |
406 | $に; | |
407 | sub y { | |
408 | $に | |
409 | } | |
410 | }->(); | |
411 | } | |
412 | EXPECT | |
413 | Variable "$に" will not stay shared at - line 11. | |
414 | ######## | |
415 | # pad.c | |
416 | use warnings 'closure' ; | |
417 | BEGIN { binmode STDERR, 'utf8'; } | |
418 | sub { | |
419 | use utf8; | |
420 | my $に; | |
421 | sub f { $に } | |
422 | }->(); | |
423 | EXPECT | |
424 | Variable "$に" is not available at - line 7. | |
425 | ######## | |
426 | # pad.c | |
427 | use warnings 'closure' ; | |
428 | BEGIN { binmode STDERR, 'utf8'; } | |
429 | sub { | |
430 | use utf8; | |
431 | my $に; | |
432 | sub f { eval '$に' } | |
433 | }->(); | |
434 | f(); | |
435 | EXPECT | |
436 | Variable "$に" is not available at (eval 1) line 2. | |
437 | ######## | |
438 | # pad.c | |
439 | # see bugid 1754 | |
440 | use warnings 'closure' ; | |
441 | BEGIN { binmode STDERR, 'utf8'; } | |
442 | sub f { | |
443 | use utf8; | |
444 | my $に; | |
445 | sub { eval '$に' }; | |
446 | } | |
447 | f()->(); | |
448 | EXPECT | |
449 | Variable "$に" is not available at (eval 1) line 2. | |
450 | ######## | |
451 | use warnings 'closure' ; | |
452 | BEGIN { binmode STDERR, 'utf8'; } | |
453 | { | |
454 | use utf8; | |
455 | my $に = 1; | |
456 | $y = \$に; # force abandonment rather than clear-in-place at scope exit | |
457 | sub f2 { eval '$に' } | |
458 | } | |
459 | f2(); | |
460 | EXPECT | |
461 | Variable "$に" is not available at (eval 1) line 2. | |
462 | ######## | |
463 | use warnings 'closure' ; | |
464 | BEGIN { binmode STDERR, 'utf8'; } | |
465 | use utf8; | |
466 | for my $に (1,2,3) { | |
467 | sub f { eval '$に' } | |
468 | f(); | |
469 | } | |
470 | f(); | |
471 | EXPECT | |
472 | Variable "$に" is not available at (eval 4) line 2. | |
473 | ######## | |
474 | # pad.c | |
475 | use warnings 'closure' ; | |
476 | BEGIN { binmode STDERR, 'utf8'; } | |
477 | sub x { | |
478 | use utf8; | |
479 | my $è; | |
480 | sub y { | |
481 | $è | |
482 | } | |
483 | } | |
484 | EXPECT | |
485 | Variable "$è" will not stay shared at - line 9. | |
486 | ######## | |
487 | # pad.c | |
488 | use warnings 'closure' ; | |
489 | BEGIN { binmode STDERR, 'utf8'; } | |
490 | sub x { | |
491 | use utf8; | |
492 | my $è; | |
493 | sub y { | |
494 | sub { $è } | |
495 | } | |
496 | } | |
497 | EXPECT | |
498 | Variable "$è" will not stay shared at - line 8. | |
499 | ######## | |
500 | # pad.c | |
501 | use warnings 'closure' ; | |
502 | BEGIN { binmode STDERR, 'utf8'; } | |
503 | sub x { | |
504 | use utf8; | |
505 | my $è; | |
506 | sub { | |
507 | $è; | |
508 | sub y { | |
509 | $è | |
510 | } | |
511 | }->(); | |
512 | } | |
513 | EXPECT | |
514 | Variable "$è" will not stay shared at - line 11. | |
515 | ######## | |
516 | # pad.c | |
517 | use warnings 'closure' ; | |
518 | BEGIN { binmode STDERR, 'utf8'; } | |
519 | sub { | |
520 | use utf8; | |
521 | my $è; | |
522 | sub f { $è } | |
523 | }->(); | |
524 | EXPECT | |
525 | Variable "$è" is not available at - line 7. | |
526 | ######## | |
527 | # pad.c | |
528 | use warnings 'closure' ; | |
529 | BEGIN { binmode STDERR, 'utf8'; } | |
530 | sub { | |
531 | use utf8; | |
532 | my $è; | |
533 | sub f { eval '$è' } | |
534 | }->(); | |
535 | f(); | |
536 | EXPECT | |
537 | Variable "$è" is not available at (eval 1) line 2. | |
538 | ######## | |
539 | # pad.c | |
540 | # see bugid 1754 | |
541 | use warnings 'closure' ; | |
542 | BEGIN { binmode STDERR, 'utf8'; } | |
543 | sub f { | |
544 | use utf8; | |
545 | my $è; | |
546 | sub { eval '$è' }; | |
547 | } | |
548 | f()->(); | |
549 | EXPECT | |
550 | Variable "$è" is not available at (eval 1) line 2. | |
551 | ######## | |
552 | use warnings 'closure' ; | |
553 | BEGIN { binmode STDERR, 'utf8'; } | |
554 | { | |
555 | use utf8; | |
556 | my $è = 1; | |
557 | $y = \$è; # force abandonment rather than clear-in-place at scope exit | |
558 | sub f2 { eval '$è' } | |
559 | } | |
560 | f2(); | |
561 | EXPECT | |
562 | Variable "$è" is not available at (eval 1) line 2. | |
563 | ######## | |
564 | use warnings 'closure' ; | |
565 | BEGIN { binmode STDERR, 'utf8'; } | |
566 | use utf8; | |
567 | for my $è (1,2,3) { | |
568 | sub f { eval '$è' } | |
569 | f(); | |
570 | } | |
571 | f(); | |
572 | EXPECT | |
573 | Variable "$è" is not available at (eval 4) line 2. | |
574 | ######## |