Deprecate use of := to mean an empty attribute list in my $pi := 4;
[p5sagit/p5-mst-13.2.git] / t / lib / warnings / toke
CommitLineData
599cee73 1toke.c AOK
2
3 we seem to have lost a few ambiguous warnings!!
4
5
599cee73 6 $a = <<;
7 Use of comma-less variable list is deprecated
8 (called 3 times via depcom)
9
10 \1 better written as $1
4438c4b7 11 use warnings 'syntax' ;
599cee73 12 s/(abc)/\1/;
13
14 warn(warn_nosemi)
15 Semicolon seems to be missing
16 $a = 1
17 &time ;
18
19
20 Reversed %c= operator
21 my $a =+ 2 ;
22 $a =- 2 ;
23 $a =* 2 ;
24 $a =% 2 ;
25 $a =& 2 ;
26 $a =. 2 ;
27 $a =^ 2 ;
28 $a =| 2 ;
29 $a =< 2 ;
30 $a =/ 2 ;
31
32 Multidimensional syntax %.*s not supported
33 my $a = $a[1,2] ;
34
35 You need to quote \"%s\""
36 sub fred {} ; $SIG{TERM} = fred;
37
38 Scalar value %.*s better written as $%.*s"
39 @a[3] = 2;
40 @a{3} = 2;
41
42 Can't use \\%c to mean $%c in expression
43 $_ = "ab" ; s/(ab)/\1/e;
44
45 Unquoted string "abc" may clash with future reserved word at - line 3.
46 warn(warn_reserved
47 $a = abc;
48
599cee73 49 Possible attempt to separate words with commas
50 @a = qw(a, b, c) ;
51
52 Possible attempt to put comments in qw() list
53 @a = qw(a b # c) ;
54
599cee73 55 %s (...) interpreted as function
56 print ("")
57 printf ("")
58 sort ("")
59
60 Ambiguous use of %c{%s%s} resolved to %c%s%s
61 $a = ${time[2]}
62 $a = ${time{2}}
63
64
65 Ambiguous use of %c{%s} resolved to %c%s
66 $a = ${time}
67 sub fred {} $a = ${fred}
68
69 Misplaced _ in number
70 $a = 1_2;
71 $a = 1_2345_6;
72
73 Bareword \"%s\" refers to nonexistent package
74 $a = FRED:: ;
75
76 Ambiguous call resolved as CORE::%s(), qualify as such or use &
77 sub time {}
78 my $a = time()
79
767a6a26 80 Unrecognized escape \\%c passed through
81 $a = "\m" ;
82
83 %s number > %s non-portable
84 my $a = 0b011111111111111111111111111111110 ;
85 $a = 0b011111111111111111111111111111111 ;
86 $a = 0b111111111111111111111111111111111 ;
87 $a = 0x0fffffffe ;
88 $a = 0x0ffffffff ;
89 $a = 0x1ffffffff ;
90 $a = 0037777777776 ;
91 $a = 0037777777777 ;
92 $a = 0047777777777 ;
93
94 Integer overflow in binary number
95 my $a = 0b011111111111111111111111111111110 ;
96 $a = 0b011111111111111111111111111111111 ;
97 $a = 0b111111111111111111111111111111111 ;
98 $a = 0x0fffffffe ;
99 $a = 0x0ffffffff ;
100 $a = 0x1ffffffff ;
101 $a = 0037777777776 ;
102 $a = 0037777777777 ;
103 $a = 0047777777777 ;
ac206dc8 104
105 dump() better written as CORE::dump()
4ac733c9 106
107 Use of /c modifier is meaningless without /g
108
64e578a2 109 Use of /c modifier is meaningless in s///
110
0453d815 111 Mandatory Warnings
112 ------------------
113 Use of "%s" without parentheses is ambiguous [check_uni]
114 rand + 4
115
116 Ambiguous use of -%s resolved as -&%s() [yylex]
117 sub fred {} ; - fred ;
118
119 Precedence problem: open %.*s should be open(%.*s) [yylex]
120 open FOO || die;
121
122 Operator or semicolon missing before %c%s [yylex]
123 Ambiguous use of %c resolved as operator %c
124 *foo *foo
125
599cee73 126__END__
127# toke.c
599cee73 128format STDOUT =
129@<<< @||| @>>> @>>>
130$a $b "abc" 'def'
131.
4438c4b7 132no warnings 'deprecated' ;
0453d815 133format STDOUT =
134@<<< @||| @>>> @>>>
135$a $b "abc" 'def'
136.
599cee73 137EXPECT
d1d15184 138Use of comma-less variable list is deprecated at - line 4.
139Use of comma-less variable list is deprecated at - line 4.
140Use of comma-less variable list is deprecated at - line 4.
599cee73 141########
142# toke.c
599cee73 143$a = <<;
144
4438c4b7 145no warnings 'deprecated' ;
0453d815 146$a = <<;
147
599cee73 148EXPECT
d1d15184 149Use of bare << to mean <<"" is deprecated at - line 2.
599cee73 150########
151# toke.c
4438c4b7 152use warnings 'syntax' ;
599cee73 153s/(abc)/\1/;
4438c4b7 154no warnings 'syntax' ;
0453d815 155s/(abc)/\1/;
599cee73 156EXPECT
157\1 better written as $1 at - line 3.
158########
159# toke.c
4438c4b7 160use warnings 'semicolon' ;
599cee73 161$a = 1
162&time ;
4438c4b7 163no warnings 'semicolon' ;
0453d815 164$a = 1
165&time ;
599cee73 166EXPECT
167Semicolon seems to be missing at - line 3.
168########
169# toke.c
4438c4b7 170use warnings 'syntax' ;
599cee73 171my $a =+ 2 ;
172$a =- 2 ;
173$a =* 2 ;
174$a =% 2 ;
175$a =& 2 ;
176$a =. 2 ;
177$a =^ 2 ;
178$a =| 2 ;
179$a =< 2 ;
180$a =/ 2 ;
181EXPECT
7f01dc7a 182Reversed += operator at - line 3.
183Reversed -= operator at - line 4.
184Reversed *= operator at - line 5.
185Reversed %= operator at - line 6.
186Reversed &= operator at - line 7.
187Reversed .= operator at - line 8.
188Reversed ^= operator at - line 9.
189Reversed |= operator at - line 10.
190Reversed <= operator at - line 11.
191syntax error at - line 8, near "=."
192syntax error at - line 9, near "=^"
193syntax error at - line 10, near "=|"
194Unterminated <> operator at - line 11.
599cee73 195########
196# toke.c
4438c4b7 197no warnings 'syntax' ;
0453d815 198my $a =+ 2 ;
199$a =- 2 ;
200$a =* 2 ;
201$a =% 2 ;
202$a =& 2 ;
203$a =. 2 ;
204$a =^ 2 ;
205$a =| 2 ;
206$a =< 2 ;
207$a =/ 2 ;
208EXPECT
7f01dc7a 209syntax error at - line 8, near "=."
210syntax error at - line 9, near "=^"
211syntax error at - line 10, near "=|"
212Unterminated <> operator at - line 11.
0453d815 213########
214# toke.c
4438c4b7 215use warnings 'syntax' ;
599cee73 216my $a = $a[1,2] ;
4438c4b7 217no warnings 'syntax' ;
0453d815 218my $a = $a[1,2] ;
599cee73 219EXPECT
220Multidimensional syntax $a[1,2] not supported at - line 3.
221########
222# toke.c
4438c4b7 223use warnings 'syntax' ;
599cee73 224sub fred {} ; $SIG{TERM} = fred;
4438c4b7 225no warnings 'syntax' ;
0453d815 226$SIG{TERM} = fred;
599cee73 227EXPECT
228You need to quote "fred" at - line 3.
229########
230# toke.c
4438c4b7 231use warnings 'syntax' ;
599cee73 232@a[3] = 2;
233@a{3} = 2;
4438c4b7 234no warnings 'syntax' ;
0453d815 235@a[3] = 2;
236@a{3} = 2;
599cee73 237EXPECT
238Scalar value @a[3] better written as $a[3] at - line 3.
239Scalar value @a{3} better written as $a{3} at - line 4.
240########
241# toke.c
4438c4b7 242use warnings 'syntax' ;
599cee73 243$_ = "ab" ;
244s/(ab)/\1/e;
4438c4b7 245no warnings 'syntax' ;
0453d815 246$_ = "ab" ;
247s/(ab)/\1/e;
599cee73 248EXPECT
249Can't use \1 to mean $1 in expression at - line 4.
250########
251# toke.c
4438c4b7 252use warnings 'reserved' ;
599cee73 253$a = abc;
1c3923b3 254$a = { def
255
256=> 1 };
4438c4b7 257no warnings 'reserved' ;
0453d815 258$a = abc;
599cee73 259EXPECT
260Unquoted string "abc" may clash with future reserved word at - line 3.
261########
262# toke.c
e476b1b5 263use warnings 'qw' ;
599cee73 264@a = qw(a, b, c) ;
e476b1b5 265no warnings 'qw' ;
0453d815 266@a = qw(a, b, c) ;
599cee73 267EXPECT
268Possible attempt to separate words with commas at - line 3.
269########
270# toke.c
e476b1b5 271use warnings 'qw' ;
599cee73 272@a = qw(a b #) ;
e476b1b5 273no warnings 'qw' ;
0453d815 274@a = qw(a b #) ;
599cee73 275EXPECT
276Possible attempt to put comments in qw() list at - line 3.
277########
278# toke.c
4438c4b7 279use warnings 'syntax' ;
b1439985 280print ("");
281print ("") and $x = 1;
282print ("") or die;
283print ("") // die;
284print (1+2) * 3 if 0; # only this one should warn
285print (1+2) if 0;
599cee73 286EXPECT
b1439985 287print (...) interpreted as function at - line 7.
599cee73 288########
289# toke.c
4438c4b7 290no warnings 'syntax' ;
0453d815 291print ("")
292EXPECT
293
294########
295# toke.c
4438c4b7 296use warnings 'syntax' ;
b1439985 297printf ("");
298printf ("") . '';
599cee73 299EXPECT
b1439985 300printf (...) interpreted as function at - line 4.
599cee73 301########
302# toke.c
4438c4b7 303no warnings 'syntax' ;
0453d815 304printf ("")
305EXPECT
306
307########
308# toke.c
4438c4b7 309use warnings 'syntax' ;
b1439985 310sort ("");
311sort ("") . '';
599cee73 312EXPECT
b1439985 313sort (...) interpreted as function at - line 4.
599cee73 314########
315# toke.c
4438c4b7 316no warnings 'syntax' ;
0453d815 317sort ("")
318EXPECT
319
320########
321# toke.c
4438c4b7 322use warnings 'ambiguous' ;
599cee73 323$a = ${time[2]};
4438c4b7 324no warnings 'ambiguous' ;
0453d815 325$a = ${time[2]};
599cee73 326EXPECT
327Ambiguous use of ${time[...]} resolved to $time[...] at - line 3.
328########
329# toke.c
4438c4b7 330use warnings 'ambiguous' ;
599cee73 331$a = ${time{2}};
332EXPECT
333Ambiguous use of ${time{...}} resolved to $time{...} at - line 3.
334########
335# toke.c
4438c4b7 336no warnings 'ambiguous' ;
0453d815 337$a = ${time{2}};
338EXPECT
339
340########
341# toke.c
4438c4b7 342use warnings 'ambiguous' ;
599cee73 343$a = ${time} ;
4438c4b7 344no warnings 'ambiguous' ;
0453d815 345$a = ${time} ;
599cee73 346EXPECT
347Ambiguous use of ${time} resolved to $time at - line 3.
348########
349# toke.c
4438c4b7 350use warnings 'ambiguous' ;
599cee73 351sub fred {}
352$a = ${fred} ;
4438c4b7 353no warnings 'ambiguous' ;
0453d815 354$a = ${fred} ;
599cee73 355EXPECT
356Ambiguous use of ${fred} resolved to $fred at - line 4.
357########
358# toke.c
4438c4b7 359use warnings 'syntax' ;
7fd134d9 360$a = _123; print "$a\n"; #( 3 string)
361$a = 1_23; print "$a\n";
362$a = 12_3; print "$a\n";
363$a = 123_; print "$a\n"; # 6
364$a = _+123; print "$a\n"; # 7 string)
365$a = +_123; print "$a\n"; #( 8 string)
366$a = +1_23; print "$a\n";
367$a = +12_3; print "$a\n";
368$a = +123_; print "$a\n"; # 11
369$a = _-123; print "$a\n"; #(12 string)
370$a = -_123; print "$a\n"; #(13 string)
371$a = -1_23; print "$a\n";
372$a = -12_3; print "$a\n";
373$a = -123_; print "$a\n"; # 16
374$a = 123._456; print "$a\n"; # 17
375$a = 123.4_56; print "$a\n";
376$a = 123.45_6; print "$a\n";
377$a = 123.456_; print "$a\n"; # 20
378$a = +123._456; print "$a\n"; # 21
379$a = +123.4_56; print "$a\n";
380$a = +123.45_6; print "$a\n";
381$a = +123.456_; print "$a\n"; # 24
382$a = -123._456; print "$a\n"; # 25
383$a = -123.4_56; print "$a\n";
384$a = -123.45_6; print "$a\n";
385$a = -123.456_; print "$a\n"; # 28
2bea9a37 386$a = 123.456E_12; printf("%.0f\n", $a); # 29
387$a = 123.456E1_2; printf("%.0f\n", $a);
388$a = 123.456E12_; printf("%.0f\n", $a); # 31
389$a = 123.456E_+12; printf("%.0f\n", $a); # 32
390$a = 123.456E+_12; printf("%.0f\n", $a); # 33
391$a = 123.456E+1_2; printf("%.0f\n", $a);
392$a = 123.456E+12_; printf("%.0f\n", $a); # 35
7fd134d9 393$a = 123.456E_-12; print "$a\n"; # 36
394$a = 123.456E-_12; print "$a\n"; # 37
395$a = 123.456E-1_2; print "$a\n";
396$a = 123.456E-12_; print "$a\n"; # 39
b3b48e3e 397$a = 1__23; print "$a\n"; # 40
398$a = 12.3__4; print "$a\n"; # 41
2bea9a37 399$a = 12.34e1__2; printf("%.0f\n", $a); # 42
4438c4b7 400no warnings 'syntax' ;
7fd134d9 401$a = _123; print "$a\n";
402$a = 1_23; print "$a\n";
403$a = 12_3; print "$a\n";
404$a = 123_; print "$a\n";
405$a = _+123; print "$a\n";
406$a = +_123; print "$a\n";
407$a = +1_23; print "$a\n";
408$a = +12_3; print "$a\n";
409$a = +123_; print "$a\n";
410$a = _-123; print "$a\n";
411$a = -_123; print "$a\n";
412$a = -1_23; print "$a\n";
413$a = -12_3; print "$a\n";
414$a = -123_; print "$a\n";
415$a = 123._456; print "$a\n";
416$a = 123.4_56; print "$a\n";
417$a = 123.45_6; print "$a\n";
418$a = 123.456_; print "$a\n";
419$a = +123._456; print "$a\n";
420$a = +123.4_56; print "$a\n";
421$a = +123.45_6; print "$a\n";
422$a = +123.456_; print "$a\n";
423$a = -123._456; print "$a\n";
424$a = -123.4_56; print "$a\n";
425$a = -123.45_6; print "$a\n";
426$a = -123.456_; print "$a\n";
2bea9a37 427$a = 123.456E_12; printf("%.0f\n", $a);
428$a = 123.456E1_2; printf("%.0f\n", $a);
429$a = 123.456E12_; printf("%.0f\n", $a);
430$a = 123.456E_+12; printf("%.0f\n", $a);
431$a = 123.456E+_12; printf("%.0f\n", $a);
432$a = 123.456E+1_2; printf("%.0f\n", $a);
433$a = 123.456E+12_; printf("%.0f\n", $a);
7fd134d9 434$a = 123.456E_-12; print "$a\n";
435$a = 123.456E-_12; print "$a\n";
436$a = 123.456E-1_2; print "$a\n";
437$a = 123.456E-12_; print "$a\n";
b3b48e3e 438$a = 1__23; print "$a\n";
439$a = 12.3__4; print "$a\n";
2bea9a37 440$a = 12.34e1__2; printf("%.0f\n", $a);
599cee73 441EXPECT
fbfa96bd 442OPTIONS regex
928753ea 443Misplaced _ in number at - line 6.
928753ea 444Misplaced _ in number at - line 11.
7fd134d9 445Misplaced _ in number at - line 16.
928753ea 446Misplaced _ in number at - line 17.
7fd134d9 447Misplaced _ in number at - line 20.
928753ea 448Misplaced _ in number at - line 21.
7fd134d9 449Misplaced _ in number at - line 24.
450Misplaced _ in number at - line 25.
451Misplaced _ in number at - line 28.
452Misplaced _ in number at - line 29.
453Misplaced _ in number at - line 31.
454Misplaced _ in number at - line 32.
455Misplaced _ in number at - line 33.
456Misplaced _ in number at - line 35.
457Misplaced _ in number at - line 36.
458Misplaced _ in number at - line 37.
459Misplaced _ in number at - line 39.
b3b48e3e 460Misplaced _ in number at - line 40.
461Misplaced _ in number at - line 41.
462Misplaced _ in number at - line 42.
928753ea 463_123
464123
928753ea 465123
7fd134d9 466123
467123
468_123
469123
470123
471123
472-123
473-_123
474-123
475-123
476-123
477123.456
478123.456
479123.456
480123.456
481123.456
482123.456
483123.456
484123.456
485-123.456
486-123.456
487-123.456
488-123.456
489123456000000000
490123456000000000
491123456000000000
492123456000000000
493123456000000000
494123456000000000
495123456000000000
fbfa96bd 4961.23456e-0?10
4971.23456e-0?10
4981.23456e-0?10
4991.23456e-0?10
b3b48e3e 500123
50112.34
50212340000000000
7fd134d9 503_123
504123
505123
506123
507123
508_123
509123
510123
511123
512-123
513-_123
514-123
515-123
516-123
517123.456
518123.456
519123.456
520123.456
521123.456
928753ea 522123.456
523123.456
928753ea 524123.456
7fd134d9 525-123.456
526-123.456
527-123.456
528-123.456
529123456000000000
530123456000000000
531123456000000000
532123456000000000
533123456000000000
534123456000000000
535123456000000000
fbfa96bd 5361.23456e-0?10
5371.23456e-0?10
5381.23456e-0?10
5391.23456e-0?10
b3b48e3e 540123
54112.34
54212340000000000
599cee73 543########
544# toke.c
e476b1b5 545use warnings 'bareword' ;
60e6418e 546#line 25 "bar"
599cee73 547$a = FRED:: ;
e476b1b5 548no warnings 'bareword' ;
0453d815 549#line 25 "bar"
550$a = FRED:: ;
599cee73 551EXPECT
60e6418e 552Bareword "FRED::" refers to nonexistent package at bar line 25.
599cee73 553########
554# toke.c
4438c4b7 555use warnings 'ambiguous' ;
599cee73 556sub time {}
0453d815 557my $a = time() ;
4438c4b7 558no warnings 'ambiguous' ;
0453d815 559my $b = time() ;
599cee73 560EXPECT
561Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4.
562########
563# toke.c
26d16222 564use warnings ;
0453d815 565eval <<'EOE';
df0deb90 566# line 30 "foo"
567warn "yelp";
0453d815 568{
0453d815 569 $_ = " \x{123} " ;
570}
571EOE
572EXPECT
df0deb90 573yelp at foo line 30.
0453d815 574########
575# toke.c
0453d815 576my $a = rand + 4 ;
577EXPECT
2d5ccbba 578Warning: Use of "rand" without parentheses is ambiguous at - line 2.
0453d815 579########
580# toke.c
581$^W = 0 ;
582my $a = rand + 4 ;
583{
4438c4b7 584 no warnings 'ambiguous' ;
0453d815 585 $a = rand + 4 ;
4438c4b7 586 use warnings 'ambiguous' ;
0453d815 587 $a = rand + 4 ;
588}
589$a = rand + 4 ;
590EXPECT
2d5ccbba 591Warning: Use of "rand" without parentheses is ambiguous at - line 3.
592Warning: Use of "rand" without parentheses is ambiguous at - line 8.
593Warning: Use of "rand" without parentheses is ambiguous at - line 10.
0453d815 594########
595# toke.c
e8ae98db 596use warnings "ambiguous";
597print for keys %+; # should not warn
598EXPECT
599########
600# toke.c
0453d815 601sub fred {};
602-fred ;
603EXPECT
604Ambiguous use of -fred resolved as -&fred() at - line 3.
605########
606# toke.c
607$^W = 0 ;
608sub fred {} ;
609-fred ;
610{
4438c4b7 611 no warnings 'ambiguous' ;
0453d815 612 -fred ;
4438c4b7 613 use warnings 'ambiguous' ;
0453d815 614 -fred ;
615}
616-fred ;
617EXPECT
618Ambiguous use of -fred resolved as -&fred() at - line 4.
619Ambiguous use of -fred resolved as -&fred() at - line 9.
620Ambiguous use of -fred resolved as -&fred() at - line 11.
621########
622# toke.c
623open FOO || time;
624EXPECT
625Precedence problem: open FOO should be open(FOO) at - line 2.
626########
66fbe8fb 627# toke.c (and [perl #16184])
628open FOO => "<&0"; close FOO;
629EXPECT
630########
0453d815 631# toke.c
632$^W = 0 ;
633open FOO || time;
634{
e476b1b5 635 no warnings 'precedence' ;
0453d815 636 open FOO || time;
e476b1b5 637 use warnings 'precedence' ;
0453d815 638 open FOO || time;
639}
640open FOO || time;
641EXPECT
642Precedence problem: open FOO should be open(FOO) at - line 3.
643Precedence problem: open FOO should be open(FOO) at - line 8.
644Precedence problem: open FOO should be open(FOO) at - line 10.
645########
646# toke.c
647$^W = 0 ;
648*foo *foo ;
649{
4438c4b7 650 no warnings 'ambiguous' ;
0453d815 651 *foo *foo ;
4438c4b7 652 use warnings 'ambiguous' ;
0453d815 653 *foo *foo ;
654}
655*foo *foo ;
656EXPECT
657Operator or semicolon missing before *foo at - line 3.
658Ambiguous use of * resolved as operator * at - line 3.
659Operator or semicolon missing before *foo at - line 8.
660Ambiguous use of * resolved as operator * at - line 8.
661Operator or semicolon missing before *foo at - line 10.
662Ambiguous use of * resolved as operator * at - line 10.
767a6a26 663########
664# toke.c
e476b1b5 665use warnings 'misc' ;
767a6a26 666my $a = "\m" ;
e476b1b5 667no warnings 'misc' ;
767a6a26 668$a = "\m" ;
669EXPECT
670Unrecognized escape \m passed through at - line 3.
671########
672# toke.c
673use warnings 'portable' ;
674my $a = 0b011111111111111111111111111111110 ;
675 $a = 0b011111111111111111111111111111111 ;
676 $a = 0b111111111111111111111111111111111 ;
677 $a = 0x0fffffffe ;
678 $a = 0x0ffffffff ;
679 $a = 0x1ffffffff ;
680 $a = 0037777777776 ;
681 $a = 0037777777777 ;
682 $a = 0047777777777 ;
683no warnings 'portable' ;
684 $a = 0b011111111111111111111111111111110 ;
685 $a = 0b011111111111111111111111111111111 ;
686 $a = 0b111111111111111111111111111111111 ;
687 $a = 0x0fffffffe ;
688 $a = 0x0ffffffff ;
689 $a = 0x1ffffffff ;
690 $a = 0037777777776 ;
691 $a = 0037777777777 ;
692 $a = 0047777777777 ;
693EXPECT
694Binary number > 0b11111111111111111111111111111111 non-portable at - line 5.
695Hexadecimal number > 0xffffffff non-portable at - line 8.
696Octal number > 037777777777 non-portable at - line 11.
697########
698# toke.c
699use warnings 'overflow' ;
700my $a = 0b011111111111111111111111111111110 ;
701 $a = 0b011111111111111111111111111111111 ;
15041a67 702 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
767a6a26 703 $a = 0x0fffffffe ;
704 $a = 0x0ffffffff ;
15041a67 705 $a = 0x10000000000000000 ;
767a6a26 706 $a = 0037777777776 ;
707 $a = 0037777777777 ;
15041a67 708 $a = 002000000000000000000000;
767a6a26 709no warnings 'overflow' ;
710 $a = 0b011111111111111111111111111111110 ;
711 $a = 0b011111111111111111111111111111111 ;
15041a67 712 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
767a6a26 713 $a = 0x0fffffffe ;
714 $a = 0x0ffffffff ;
15041a67 715 $a = 0x10000000000000000 ;
767a6a26 716 $a = 0037777777776 ;
717 $a = 0037777777777 ;
15041a67 718 $a = 002000000000000000000000;
767a6a26 719EXPECT
720Integer overflow in binary number at - line 5.
721Integer overflow in hexadecimal number at - line 8.
722Integer overflow in octal number at - line 11.
8593bda5 723########
724# toke.c
ac206dc8 725BEGIN { $^C = 1; }
726use warnings 'misc';
727dump;
728CORE::dump;
729EXPECT
730dump() better written as CORE::dump() at - line 4.
731- syntax OK
732########
733# toke.c
734use warnings 'misc';
735use subs qw/dump/;
736sub dump { print "no warning for overriden dump\n"; }
737dump;
738EXPECT
739no warning for overriden dump
740########
741# toke.c
8593bda5 742use warnings 'ambiguous';
743"@mjd_previously_unused_array";
744no warnings 'ambiguous';
745"@mjd_previously_unused_array";
746EXPECT
747Possible unintended interpolation of @mjd_previously_unused_array in string at - line 3.
707afd92 748########
749# toke.c
d8c55666 750# 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com
4ac733c9 751use warnings 'regexp';
752"foo" =~ /foo/c;
64e578a2 753"foo" =~ /foo/cg;
4ac733c9 754no warnings 'regexp';
755"foo" =~ /foo/c;
64e578a2 756"foo" =~ /foo/cg;
4ac733c9 757EXPECT
758Use of /c modifier is meaningless without /g at - line 4.
759########
760# toke.c
d8c55666 761# 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com
4ac733c9 762use warnings 'regexp';
763$_ = "ab" ;
764s/ab/ab/c;
64e578a2 765s/ab/ab/cg;
4ac733c9 766no warnings 'regexp';
767s/ab/ab/c;
64e578a2 768s/ab/ab/cg;
4ac733c9 769EXPECT
64e578a2 770Use of /c modifier is meaningless in s/// at - line 5.
771Use of /c modifier is meaningless in s/// at - line 6.
d8c55666 772########
773-wa
774# toke.c
775# 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings
776print "@F\n";
777EXPECT
778
779########
780-w
781# toke.c
782# 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings
783print "@F\n";
784EXPECT
785Possible unintended interpolation of @F in string at - line 4.
786Name "main::F" used only once: possible typo at - line 4.
787########
788-wa
789# toke.c
790# 20020414 mjd-perl-patch+@plover.com
791EXPECT
792
2710853f 793########
794# toke.c
795# 20020414 mjd-perl-patch+@plover.com
796# In 5.7.3, this emitted "Possible unintended interpolation" warnings
797use warnings 'ambiguous';
798$s = "(@-)(@+)";
799EXPECT
800
56da5a46 801########
802# toke.c
803# mandatory warning
804eval q/if ($a) { } elseif ($b) { }/;
805no warnings "syntax";
806eval q/if ($a) { } elseif ($b) { }/;
807EXPECT
808elseif should be elsif at (eval 1) line 1.
809########
810# toke.c
811# mandatory warning
812eval q/5 6/;
813no warnings "syntax";
814eval q/5 6/;
815EXPECT
816Number found where operator expected at (eval 1) line 1, near "5 6"
817 (Missing operator before 6?)
984200d0 818########
819# toke.c
820use warnings "syntax";
821$_ = $a = 1;
822$a !=~ /1/;
823$a !=~ m#1#;
824$a !=~/1/;
825$a !=~ ?/?;
decca21c 826$a !=~ y/1//;
827$a !=~ tr/1//;
828$a !=~ s/1//;
984200d0 829$a != ~/1/;
830no warnings "syntax";
831$a !=~ /1/;
832$a !=~ m#1#;
833$a !=~/1/;
834$a !=~ ?/?;
decca21c 835$a !=~ y/1//;
836$a !=~ tr/1//;
837$a !=~ s/1//;
984200d0 838EXPECT
839!=~ should be !~ at - line 4.
840!=~ should be !~ at - line 5.
841!=~ should be !~ at - line 6.
842!=~ should be !~ at - line 7.
decca21c 843!=~ should be !~ at - line 8.
844!=~ should be !~ at - line 9.
845!=~ should be !~ at - line 10.
1108974d 846########
847# toke.c
848our $foo :unique;
8e5dadda 849sub pam :locked;
850sub glipp :locked {
851}
852sub whack_eth ($) : locked {
853}
d1d15184 854no warnings 'deprecated';
1108974d 855our $bar :unique;
8e5dadda 856sub zapeth :locked;
857sub ker_plop :locked {
858}
859sub swa_a_p ($) : locked {
860}
1108974d 861EXPECT
d1d15184 862Use of :unique is deprecated at - line 2.
863Use of :locked is deprecated at - line 3.
864Use of :locked is deprecated at - line 4.
865Use of :locked is deprecated at - line 6.
9e8d7757 866########
867# toke.c
868use warnings "syntax";
869sub proto_after_array(@$);
870sub proto_after_arref(\@$);
871sub proto_after_arref2(\[@$]);
872sub proto_after_arref3(\[@$]_);
873sub proto_after_hash(%$);
874sub proto_after_hashref(\%$);
875sub proto_after_hashref2(\[%$]);
876sub underscore_last_pos($_);
877sub underscore2($_;$);
878sub underscore_fail($_$);
879sub underscore_after_at(@_);
880no warnings "syntax";
881sub proto_after_array(@$);
882sub proto_after_hash(%$);
883sub underscore_fail($_$);
884EXPECT
885Prototype after '@' for main::proto_after_array : @$ at - line 3.
886Prototype after '%' for main::proto_after_hash : %$ at - line 7.
aef2a98a 887Illegal character after '_' in prototype for main::underscore_fail : $_$ at - line 12.
9e8d7757 888Prototype after '@' for main::underscore_after_at : @_ at - line 13.
77772344 889########
890# toke.c
891use warnings "ambiguous";
892"foo\nn" =~ /^foo$\n/;
893"foo\nn" =~ /^foo${\}n/;
894my $foo = qr/^foo$\n/;
895my $bar = qr/^foo${\}n/;
896no warnings "ambiguous";
897"foo\nn" =~ /^foo$\n/;
898"foo\nn" =~ /^foo${\}n/;
899my $foo = qr/^foo$\n/;
900my $bar = qr/^foo${\}n/;
901EXPECT
902Possible unintended interpolation of $\ in regex at - line 3.
903Possible unintended interpolation of $\ in regex at - line 5.
d83f38d8 904########
905# toke.c
906use feature 'state';
907# This one is fine as an empty attribute list
908my $holy_Einstein : = '';
909# This one is deprecated
910my $krunch := 4;
911our $FWISK_FWISK_FWIZZACH_FWACH_ZACHITTY_ZICH_SHAZZATZ_FWISK := '';
912state $thump := 'Trumpets';
913# Lather rinse repeat in my usual obsessive style
914my @holy_perfect_pitch : = ();
915my @zok := ();
916our @GUKGUK := ();
917# state @widget_mark := ();
918my %holy_seditives : = ();
919my %bang := ();
920our %GIGAZING := ();
921# state %hex := ();
922no warnings 'deprecated';
923my $holy_giveaways : = '';
924my $eee_yow := [];
925our $TWOYYOYYOING_THUK_UGH := 1 == 1;
926state $octothorn := 'Tinky Winky';
927my @holy_Taj_Mahal : = ();
928my @touche := ();
929our @PLAK_DAK_THUK_FRIT := ();
930# state @hash_mark := ();
931my %holy_priceless_collection_of_Etruscan_snoods : = ();
932my %wham_eth := ();
933our %THWUK := ();
934# state %octalthorpe := ();
935use warnings;
936my $holy_sewer_pipe : = '';
937my $thunk := undef;
938our $BLIT := time;
939state $crunch := 'Laa Laa';
940my @glurpp := ();
941my @holy_harem : = ();
942our @FABADAP := ();
943# state @square := ();
944my %holy_pin_cushions : = ();
945my %swoosh := ();
946our %RRRRR := ();
947# state %scratchmark := ();
948EXPECT
949Use of := for an empty attribute list is deprecated at - line 6.
950Use of := for an empty attribute list is deprecated at - line 7.
951Use of := for an empty attribute list is deprecated at - line 8.
952Use of := for an empty attribute list is deprecated at - line 11.
953Use of := for an empty attribute list is deprecated at - line 12.
954Use of := for an empty attribute list is deprecated at - line 15.
955Use of := for an empty attribute list is deprecated at - line 16.
956Use of := for an empty attribute list is deprecated at - line 33.
957Use of := for an empty attribute list is deprecated at - line 34.
958Use of := for an empty attribute list is deprecated at - line 35.
959Use of := for an empty attribute list is deprecated at - line 36.
960Use of := for an empty attribute list is deprecated at - line 38.
961Use of := for an empty attribute list is deprecated at - line 41.
962Use of := for an empty attribute list is deprecated at - line 42.