Split all the tests for ops that can return undef for defined args
[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
a4f5cc89 128use warnings 'deprecated' ;
599cee73 129format STDOUT =
130@<<< @||| @>>> @>>>
131$a $b "abc" 'def'
132.
4438c4b7 133no warnings 'deprecated' ;
0453d815 134format STDOUT =
135@<<< @||| @>>> @>>>
136$a $b "abc" 'def'
137.
599cee73 138EXPECT
139Use of comma-less variable list is deprecated at - line 5.
140Use of comma-less variable list is deprecated at - line 5.
141Use of comma-less variable list is deprecated at - line 5.
599cee73 142########
143# toke.c
4438c4b7 144use warnings 'deprecated' ;
599cee73 145$a = <<;
146
4438c4b7 147no warnings 'deprecated' ;
0453d815 148$a = <<;
149
599cee73 150EXPECT
151Use of bare << to mean <<"" is deprecated at - line 3.
152########
153# toke.c
4438c4b7 154use warnings 'syntax' ;
599cee73 155s/(abc)/\1/;
4438c4b7 156no warnings 'syntax' ;
0453d815 157s/(abc)/\1/;
599cee73 158EXPECT
159\1 better written as $1 at - line 3.
160########
161# toke.c
4438c4b7 162use warnings 'semicolon' ;
599cee73 163$a = 1
164&time ;
4438c4b7 165no warnings 'semicolon' ;
0453d815 166$a = 1
167&time ;
599cee73 168EXPECT
169Semicolon seems to be missing at - line 3.
170########
171# toke.c
4438c4b7 172use warnings 'syntax' ;
599cee73 173my $a =+ 2 ;
174$a =- 2 ;
175$a =* 2 ;
176$a =% 2 ;
177$a =& 2 ;
178$a =. 2 ;
179$a =^ 2 ;
180$a =| 2 ;
181$a =< 2 ;
182$a =/ 2 ;
183EXPECT
7f01dc7a 184Reversed += operator at - line 3.
185Reversed -= operator at - line 4.
186Reversed *= operator at - line 5.
187Reversed %= operator at - line 6.
188Reversed &= operator at - line 7.
189Reversed .= operator at - line 8.
190Reversed ^= operator at - line 9.
191Reversed |= operator at - line 10.
192Reversed <= operator at - line 11.
193syntax error at - line 8, near "=."
194syntax error at - line 9, near "=^"
195syntax error at - line 10, near "=|"
196Unterminated <> operator at - line 11.
599cee73 197########
198# toke.c
4438c4b7 199no warnings 'syntax' ;
0453d815 200my $a =+ 2 ;
201$a =- 2 ;
202$a =* 2 ;
203$a =% 2 ;
204$a =& 2 ;
205$a =. 2 ;
206$a =^ 2 ;
207$a =| 2 ;
208$a =< 2 ;
209$a =/ 2 ;
210EXPECT
7f01dc7a 211syntax error at - line 8, near "=."
212syntax error at - line 9, near "=^"
213syntax error at - line 10, near "=|"
214Unterminated <> operator at - line 11.
0453d815 215########
216# toke.c
4438c4b7 217use warnings 'syntax' ;
599cee73 218my $a = $a[1,2] ;
4438c4b7 219no warnings 'syntax' ;
0453d815 220my $a = $a[1,2] ;
599cee73 221EXPECT
222Multidimensional syntax $a[1,2] not supported at - line 3.
223########
224# toke.c
4438c4b7 225use warnings 'syntax' ;
599cee73 226sub fred {} ; $SIG{TERM} = fred;
4438c4b7 227no warnings 'syntax' ;
0453d815 228$SIG{TERM} = fred;
599cee73 229EXPECT
230You need to quote "fred" at - line 3.
231########
232# toke.c
4438c4b7 233use warnings 'syntax' ;
599cee73 234@a[3] = 2;
235@a{3} = 2;
4438c4b7 236no warnings 'syntax' ;
0453d815 237@a[3] = 2;
238@a{3} = 2;
599cee73 239EXPECT
240Scalar value @a[3] better written as $a[3] at - line 3.
241Scalar value @a{3} better written as $a{3} at - line 4.
242########
243# toke.c
4438c4b7 244use warnings 'syntax' ;
599cee73 245$_ = "ab" ;
246s/(ab)/\1/e;
4438c4b7 247no warnings 'syntax' ;
0453d815 248$_ = "ab" ;
249s/(ab)/\1/e;
599cee73 250EXPECT
251Can't use \1 to mean $1 in expression at - line 4.
252########
253# toke.c
4438c4b7 254use warnings 'reserved' ;
599cee73 255$a = abc;
1c3923b3 256$a = { def
257
258=> 1 };
4438c4b7 259no warnings 'reserved' ;
0453d815 260$a = abc;
599cee73 261EXPECT
262Unquoted string "abc" may clash with future reserved word at - line 3.
263########
264# toke.c
e476b1b5 265use warnings 'qw' ;
599cee73 266@a = qw(a, b, c) ;
e476b1b5 267no warnings 'qw' ;
0453d815 268@a = qw(a, b, c) ;
599cee73 269EXPECT
270Possible attempt to separate words with commas at - line 3.
271########
272# toke.c
e476b1b5 273use warnings 'qw' ;
599cee73 274@a = qw(a b #) ;
e476b1b5 275no warnings 'qw' ;
0453d815 276@a = qw(a b #) ;
599cee73 277EXPECT
278Possible attempt to put comments in qw() list at - line 3.
279########
280# toke.c
4438c4b7 281use warnings 'syntax' ;
b1439985 282print ("");
283print ("") and $x = 1;
284print ("") or die;
285print ("") // die;
286print (1+2) * 3 if 0; # only this one should warn
287print (1+2) if 0;
599cee73 288EXPECT
b1439985 289print (...) interpreted as function at - line 7.
599cee73 290########
291# toke.c
4438c4b7 292no warnings 'syntax' ;
0453d815 293print ("")
294EXPECT
295
296########
297# toke.c
4438c4b7 298use warnings 'syntax' ;
b1439985 299printf ("");
300printf ("") . '';
599cee73 301EXPECT
b1439985 302printf (...) interpreted as function at - line 4.
599cee73 303########
304# toke.c
4438c4b7 305no warnings 'syntax' ;
0453d815 306printf ("")
307EXPECT
308
309########
310# toke.c
4438c4b7 311use warnings 'syntax' ;
b1439985 312sort ("");
313sort ("") . '';
599cee73 314EXPECT
b1439985 315sort (...) interpreted as function at - line 4.
599cee73 316########
317# toke.c
4438c4b7 318no warnings 'syntax' ;
0453d815 319sort ("")
320EXPECT
321
322########
323# toke.c
4438c4b7 324use warnings 'ambiguous' ;
599cee73 325$a = ${time[2]};
4438c4b7 326no warnings 'ambiguous' ;
0453d815 327$a = ${time[2]};
599cee73 328EXPECT
329Ambiguous use of ${time[...]} resolved to $time[...] at - line 3.
330########
331# toke.c
4438c4b7 332use warnings 'ambiguous' ;
599cee73 333$a = ${time{2}};
334EXPECT
335Ambiguous use of ${time{...}} resolved to $time{...} at - line 3.
336########
337# toke.c
4438c4b7 338no warnings 'ambiguous' ;
0453d815 339$a = ${time{2}};
340EXPECT
341
342########
343# toke.c
4438c4b7 344use warnings 'ambiguous' ;
599cee73 345$a = ${time} ;
4438c4b7 346no warnings 'ambiguous' ;
0453d815 347$a = ${time} ;
599cee73 348EXPECT
349Ambiguous use of ${time} resolved to $time at - line 3.
350########
351# toke.c
4438c4b7 352use warnings 'ambiguous' ;
599cee73 353sub fred {}
354$a = ${fred} ;
4438c4b7 355no warnings 'ambiguous' ;
0453d815 356$a = ${fred} ;
599cee73 357EXPECT
358Ambiguous use of ${fred} resolved to $fred at - line 4.
359########
360# toke.c
4438c4b7 361use warnings 'syntax' ;
7fd134d9 362$a = _123; print "$a\n"; #( 3 string)
363$a = 1_23; print "$a\n";
364$a = 12_3; print "$a\n";
365$a = 123_; print "$a\n"; # 6
366$a = _+123; print "$a\n"; # 7 string)
367$a = +_123; print "$a\n"; #( 8 string)
368$a = +1_23; print "$a\n";
369$a = +12_3; print "$a\n";
370$a = +123_; print "$a\n"; # 11
371$a = _-123; print "$a\n"; #(12 string)
372$a = -_123; print "$a\n"; #(13 string)
373$a = -1_23; print "$a\n";
374$a = -12_3; print "$a\n";
375$a = -123_; print "$a\n"; # 16
376$a = 123._456; print "$a\n"; # 17
377$a = 123.4_56; print "$a\n";
378$a = 123.45_6; print "$a\n";
379$a = 123.456_; print "$a\n"; # 20
380$a = +123._456; print "$a\n"; # 21
381$a = +123.4_56; print "$a\n";
382$a = +123.45_6; print "$a\n";
383$a = +123.456_; print "$a\n"; # 24
384$a = -123._456; print "$a\n"; # 25
385$a = -123.4_56; print "$a\n";
386$a = -123.45_6; print "$a\n";
387$a = -123.456_; print "$a\n"; # 28
2bea9a37 388$a = 123.456E_12; printf("%.0f\n", $a); # 29
389$a = 123.456E1_2; printf("%.0f\n", $a);
390$a = 123.456E12_; printf("%.0f\n", $a); # 31
391$a = 123.456E_+12; printf("%.0f\n", $a); # 32
392$a = 123.456E+_12; printf("%.0f\n", $a); # 33
393$a = 123.456E+1_2; printf("%.0f\n", $a);
394$a = 123.456E+12_; printf("%.0f\n", $a); # 35
7fd134d9 395$a = 123.456E_-12; print "$a\n"; # 36
396$a = 123.456E-_12; print "$a\n"; # 37
397$a = 123.456E-1_2; print "$a\n";
398$a = 123.456E-12_; print "$a\n"; # 39
b3b48e3e 399$a = 1__23; print "$a\n"; # 40
400$a = 12.3__4; print "$a\n"; # 41
2bea9a37 401$a = 12.34e1__2; printf("%.0f\n", $a); # 42
4438c4b7 402no warnings 'syntax' ;
7fd134d9 403$a = _123; print "$a\n";
404$a = 1_23; print "$a\n";
405$a = 12_3; print "$a\n";
406$a = 123_; print "$a\n";
407$a = _+123; print "$a\n";
408$a = +_123; print "$a\n";
409$a = +1_23; print "$a\n";
410$a = +12_3; print "$a\n";
411$a = +123_; print "$a\n";
412$a = _-123; print "$a\n";
413$a = -_123; print "$a\n";
414$a = -1_23; print "$a\n";
415$a = -12_3; print "$a\n";
416$a = -123_; print "$a\n";
417$a = 123._456; print "$a\n";
418$a = 123.4_56; print "$a\n";
419$a = 123.45_6; print "$a\n";
420$a = 123.456_; print "$a\n";
421$a = +123._456; print "$a\n";
422$a = +123.4_56; print "$a\n";
423$a = +123.45_6; print "$a\n";
424$a = +123.456_; print "$a\n";
425$a = -123._456; print "$a\n";
426$a = -123.4_56; print "$a\n";
427$a = -123.45_6; print "$a\n";
428$a = -123.456_; print "$a\n";
2bea9a37 429$a = 123.456E_12; printf("%.0f\n", $a);
430$a = 123.456E1_2; printf("%.0f\n", $a);
431$a = 123.456E12_; printf("%.0f\n", $a);
432$a = 123.456E_+12; printf("%.0f\n", $a);
433$a = 123.456E+_12; printf("%.0f\n", $a);
434$a = 123.456E+1_2; printf("%.0f\n", $a);
435$a = 123.456E+12_; printf("%.0f\n", $a);
7fd134d9 436$a = 123.456E_-12; print "$a\n";
437$a = 123.456E-_12; print "$a\n";
438$a = 123.456E-1_2; print "$a\n";
439$a = 123.456E-12_; print "$a\n";
b3b48e3e 440$a = 1__23; print "$a\n";
441$a = 12.3__4; print "$a\n";
2bea9a37 442$a = 12.34e1__2; printf("%.0f\n", $a);
599cee73 443EXPECT
fbfa96bd 444OPTIONS regex
928753ea 445Misplaced _ in number at - line 6.
928753ea 446Misplaced _ in number at - line 11.
7fd134d9 447Misplaced _ in number at - line 16.
928753ea 448Misplaced _ in number at - line 17.
7fd134d9 449Misplaced _ in number at - line 20.
928753ea 450Misplaced _ in number at - line 21.
7fd134d9 451Misplaced _ in number at - line 24.
452Misplaced _ in number at - line 25.
453Misplaced _ in number at - line 28.
454Misplaced _ in number at - line 29.
455Misplaced _ in number at - line 31.
456Misplaced _ in number at - line 32.
457Misplaced _ in number at - line 33.
458Misplaced _ in number at - line 35.
459Misplaced _ in number at - line 36.
460Misplaced _ in number at - line 37.
461Misplaced _ in number at - line 39.
b3b48e3e 462Misplaced _ in number at - line 40.
463Misplaced _ in number at - line 41.
464Misplaced _ in number at - line 42.
928753ea 465_123
466123
928753ea 467123
7fd134d9 468123
469123
470_123
471123
472123
473123
474-123
475-_123
476-123
477-123
478-123
479123.456
480123.456
481123.456
482123.456
483123.456
484123.456
485123.456
486123.456
487-123.456
488-123.456
489-123.456
490-123.456
491123456000000000
492123456000000000
493123456000000000
494123456000000000
495123456000000000
496123456000000000
497123456000000000
fbfa96bd 4981.23456e-0?10
4991.23456e-0?10
5001.23456e-0?10
5011.23456e-0?10
b3b48e3e 502123
50312.34
50412340000000000
7fd134d9 505_123
506123
507123
508123
509123
510_123
511123
512123
513123
514-123
515-_123
516-123
517-123
518-123
519123.456
520123.456
521123.456
522123.456
523123.456
928753ea 524123.456
525123.456
928753ea 526123.456
7fd134d9 527-123.456
528-123.456
529-123.456
530-123.456
531123456000000000
532123456000000000
533123456000000000
534123456000000000
535123456000000000
536123456000000000
537123456000000000
fbfa96bd 5381.23456e-0?10
5391.23456e-0?10
5401.23456e-0?10
5411.23456e-0?10
b3b48e3e 542123
54312.34
54412340000000000
599cee73 545########
546# toke.c
e476b1b5 547use warnings 'bareword' ;
60e6418e 548#line 25 "bar"
599cee73 549$a = FRED:: ;
e476b1b5 550no warnings 'bareword' ;
0453d815 551#line 25 "bar"
552$a = FRED:: ;
599cee73 553EXPECT
60e6418e 554Bareword "FRED::" refers to nonexistent package at bar line 25.
599cee73 555########
556# toke.c
4438c4b7 557use warnings 'ambiguous' ;
599cee73 558sub time {}
0453d815 559my $a = time() ;
4438c4b7 560no warnings 'ambiguous' ;
0453d815 561my $b = time() ;
599cee73 562EXPECT
563Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4.
564########
565# toke.c
26d16222 566use warnings ;
0453d815 567eval <<'EOE';
df0deb90 568# line 30 "foo"
569warn "yelp";
0453d815 570{
0453d815 571 $_ = " \x{123} " ;
572}
573EOE
574EXPECT
df0deb90 575yelp at foo line 30.
0453d815 576########
577# toke.c
0453d815 578my $a = rand + 4 ;
579EXPECT
2d5ccbba 580Warning: Use of "rand" without parentheses is ambiguous at - line 2.
0453d815 581########
582# toke.c
583$^W = 0 ;
584my $a = rand + 4 ;
585{
4438c4b7 586 no warnings 'ambiguous' ;
0453d815 587 $a = rand + 4 ;
4438c4b7 588 use warnings 'ambiguous' ;
0453d815 589 $a = rand + 4 ;
590}
591$a = rand + 4 ;
592EXPECT
2d5ccbba 593Warning: Use of "rand" without parentheses is ambiguous at - line 3.
594Warning: Use of "rand" without parentheses is ambiguous at - line 8.
595Warning: Use of "rand" without parentheses is ambiguous at - line 10.
0453d815 596########
597# toke.c
e8ae98db 598use warnings "ambiguous";
599print for keys %+; # should not warn
600EXPECT
601########
602# toke.c
0453d815 603sub fred {};
604-fred ;
605EXPECT
606Ambiguous use of -fred resolved as -&fred() at - line 3.
607########
608# toke.c
609$^W = 0 ;
610sub fred {} ;
611-fred ;
612{
4438c4b7 613 no warnings 'ambiguous' ;
0453d815 614 -fred ;
4438c4b7 615 use warnings 'ambiguous' ;
0453d815 616 -fred ;
617}
618-fred ;
619EXPECT
620Ambiguous use of -fred resolved as -&fred() at - line 4.
621Ambiguous use of -fred resolved as -&fred() at - line 9.
622Ambiguous use of -fred resolved as -&fred() at - line 11.
623########
624# toke.c
625open FOO || time;
626EXPECT
627Precedence problem: open FOO should be open(FOO) at - line 2.
628########
66fbe8fb 629# toke.c (and [perl #16184])
630open FOO => "<&0"; close FOO;
631EXPECT
632########
0453d815 633# toke.c
634$^W = 0 ;
635open FOO || time;
636{
e476b1b5 637 no warnings 'precedence' ;
0453d815 638 open FOO || time;
e476b1b5 639 use warnings 'precedence' ;
0453d815 640 open FOO || time;
641}
642open FOO || time;
643EXPECT
644Precedence problem: open FOO should be open(FOO) at - line 3.
645Precedence problem: open FOO should be open(FOO) at - line 8.
646Precedence problem: open FOO should be open(FOO) at - line 10.
647########
648# toke.c
649$^W = 0 ;
650*foo *foo ;
651{
4438c4b7 652 no warnings 'ambiguous' ;
0453d815 653 *foo *foo ;
4438c4b7 654 use warnings 'ambiguous' ;
0453d815 655 *foo *foo ;
656}
657*foo *foo ;
658EXPECT
659Operator or semicolon missing before *foo at - line 3.
660Ambiguous use of * resolved as operator * at - line 3.
661Operator or semicolon missing before *foo at - line 8.
662Ambiguous use of * resolved as operator * at - line 8.
663Operator or semicolon missing before *foo at - line 10.
664Ambiguous use of * resolved as operator * at - line 10.
767a6a26 665########
666# toke.c
e476b1b5 667use warnings 'misc' ;
767a6a26 668my $a = "\m" ;
e476b1b5 669no warnings 'misc' ;
767a6a26 670$a = "\m" ;
671EXPECT
672Unrecognized escape \m passed through at - line 3.
673########
674# toke.c
675use warnings 'portable' ;
676my $a = 0b011111111111111111111111111111110 ;
677 $a = 0b011111111111111111111111111111111 ;
678 $a = 0b111111111111111111111111111111111 ;
679 $a = 0x0fffffffe ;
680 $a = 0x0ffffffff ;
681 $a = 0x1ffffffff ;
682 $a = 0037777777776 ;
683 $a = 0037777777777 ;
684 $a = 0047777777777 ;
685no warnings 'portable' ;
686 $a = 0b011111111111111111111111111111110 ;
687 $a = 0b011111111111111111111111111111111 ;
688 $a = 0b111111111111111111111111111111111 ;
689 $a = 0x0fffffffe ;
690 $a = 0x0ffffffff ;
691 $a = 0x1ffffffff ;
692 $a = 0037777777776 ;
693 $a = 0037777777777 ;
694 $a = 0047777777777 ;
695EXPECT
696Binary number > 0b11111111111111111111111111111111 non-portable at - line 5.
697Hexadecimal number > 0xffffffff non-portable at - line 8.
698Octal number > 037777777777 non-portable at - line 11.
699########
700# toke.c
701use warnings 'overflow' ;
702my $a = 0b011111111111111111111111111111110 ;
703 $a = 0b011111111111111111111111111111111 ;
15041a67 704 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
767a6a26 705 $a = 0x0fffffffe ;
706 $a = 0x0ffffffff ;
15041a67 707 $a = 0x10000000000000000 ;
767a6a26 708 $a = 0037777777776 ;
709 $a = 0037777777777 ;
15041a67 710 $a = 002000000000000000000000;
767a6a26 711no warnings 'overflow' ;
712 $a = 0b011111111111111111111111111111110 ;
713 $a = 0b011111111111111111111111111111111 ;
15041a67 714 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
767a6a26 715 $a = 0x0fffffffe ;
716 $a = 0x0ffffffff ;
15041a67 717 $a = 0x10000000000000000 ;
767a6a26 718 $a = 0037777777776 ;
719 $a = 0037777777777 ;
15041a67 720 $a = 002000000000000000000000;
767a6a26 721EXPECT
722Integer overflow in binary number at - line 5.
723Integer overflow in hexadecimal number at - line 8.
724Integer overflow in octal number at - line 11.
8593bda5 725########
726# toke.c
ac206dc8 727BEGIN { $^C = 1; }
728use warnings 'misc';
729dump;
730CORE::dump;
731EXPECT
732dump() better written as CORE::dump() at - line 4.
733- syntax OK
734########
735# toke.c
736use warnings 'misc';
737use subs qw/dump/;
738sub dump { print "no warning for overriden dump\n"; }
739dump;
740EXPECT
741no warning for overriden dump
742########
743# toke.c
8593bda5 744use warnings 'ambiguous';
745"@mjd_previously_unused_array";
746no warnings 'ambiguous';
747"@mjd_previously_unused_array";
748EXPECT
749Possible unintended interpolation of @mjd_previously_unused_array in string at - line 3.
707afd92 750########
751# toke.c
d8c55666 752# 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com
4ac733c9 753use warnings 'regexp';
754"foo" =~ /foo/c;
64e578a2 755"foo" =~ /foo/cg;
4ac733c9 756no warnings 'regexp';
757"foo" =~ /foo/c;
64e578a2 758"foo" =~ /foo/cg;
4ac733c9 759EXPECT
760Use of /c modifier is meaningless without /g at - line 4.
761########
762# toke.c
d8c55666 763# 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com
4ac733c9 764use warnings 'regexp';
765$_ = "ab" ;
766s/ab/ab/c;
64e578a2 767s/ab/ab/cg;
4ac733c9 768no warnings 'regexp';
769s/ab/ab/c;
64e578a2 770s/ab/ab/cg;
4ac733c9 771EXPECT
64e578a2 772Use of /c modifier is meaningless in s/// at - line 5.
773Use of /c modifier is meaningless in s/// at - line 6.
d8c55666 774########
775-wa
776# toke.c
777# 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings
778print "@F\n";
779EXPECT
780
781########
782-w
783# toke.c
784# 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings
785print "@F\n";
786EXPECT
787Possible unintended interpolation of @F in string at - line 4.
788Name "main::F" used only once: possible typo at - line 4.
789########
790-wa
791# toke.c
792# 20020414 mjd-perl-patch+@plover.com
793EXPECT
794
2710853f 795########
796# toke.c
797# 20020414 mjd-perl-patch+@plover.com
798# In 5.7.3, this emitted "Possible unintended interpolation" warnings
799use warnings 'ambiguous';
800$s = "(@-)(@+)";
801EXPECT
802
56da5a46 803########
804# toke.c
805# mandatory warning
806eval q/if ($a) { } elseif ($b) { }/;
807no warnings "syntax";
808eval q/if ($a) { } elseif ($b) { }/;
809EXPECT
810elseif should be elsif at (eval 1) line 1.
811########
812# toke.c
813# mandatory warning
814eval q/5 6/;
815no warnings "syntax";
816eval q/5 6/;
817EXPECT
818Number found where operator expected at (eval 1) line 1, near "5 6"
819 (Missing operator before 6?)
984200d0 820########
821# toke.c
822use warnings "syntax";
823$_ = $a = 1;
824$a !=~ /1/;
825$a !=~ m#1#;
826$a !=~/1/;
827$a !=~ ?/?;
decca21c 828$a !=~ y/1//;
829$a !=~ tr/1//;
830$a !=~ s/1//;
984200d0 831$a != ~/1/;
832no warnings "syntax";
833$a !=~ /1/;
834$a !=~ m#1#;
835$a !=~/1/;
836$a !=~ ?/?;
decca21c 837$a !=~ y/1//;
838$a !=~ tr/1//;
839$a !=~ s/1//;
984200d0 840EXPECT
841!=~ should be !~ at - line 4.
842!=~ should be !~ at - line 5.
843!=~ should be !~ at - line 6.
844!=~ should be !~ at - line 7.
decca21c 845!=~ should be !~ at - line 8.
846!=~ should be !~ at - line 9.
847!=~ should be !~ at - line 10.
1108974d 848########
849# toke.c
850our $foo :unique;
851use warnings 'deprecated';
852our $bar :unique;
853EXPECT
854Use of :unique is deprecated at - line 4.
9e8d7757 855########
856# toke.c
857use warnings "syntax";
858sub proto_after_array(@$);
859sub proto_after_arref(\@$);
860sub proto_after_arref2(\[@$]);
861sub proto_after_arref3(\[@$]_);
862sub proto_after_hash(%$);
863sub proto_after_hashref(\%$);
864sub proto_after_hashref2(\[%$]);
865sub underscore_last_pos($_);
866sub underscore2($_;$);
867sub underscore_fail($_$);
868sub underscore_after_at(@_);
869no warnings "syntax";
870sub proto_after_array(@$);
871sub proto_after_hash(%$);
872sub underscore_fail($_$);
873EXPECT
874Prototype after '@' for main::proto_after_array : @$ at - line 3.
875Prototype after '%' for main::proto_after_hash : %$ at - line 7.
aef2a98a 876Illegal character after '_' in prototype for main::underscore_fail : $_$ at - line 12.
9e8d7757 877Prototype after '@' for main::underscore_after_at : @_ at - line 13.
77772344 878########
879# toke.c
880use warnings "ambiguous";
881"foo\nn" =~ /^foo$\n/;
882"foo\nn" =~ /^foo${\}n/;
883my $foo = qr/^foo$\n/;
884my $bar = qr/^foo${\}n/;
885no warnings "ambiguous";
886"foo\nn" =~ /^foo$\n/;
887"foo\nn" =~ /^foo${\}n/;
888my $foo = qr/^foo$\n/;
889my $bar = qr/^foo${\}n/;
890EXPECT
891Possible unintended interpolation of $\ in regex at - line 3.
892Possible unintended interpolation of $\ in regex at - line 5.