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