Do no -warn on \_, only on \alpha.
[p5sagit/p5-mst-13.2.git] / t / pragma / warn / toke
CommitLineData
599cee73 1toke.c AOK
2
3 we seem to have lost a few ambiguous warnings!!
4
5
6 1 if $a EQ $b ;
7 1 if $a NE $b ;
8 1 if $a LT $b ;
9 1 if $a GT $b ;
10 1 if $a GE $b ;
11 1 if $a LE $b ;
12 $a = <<;
13 Use of comma-less variable list is deprecated
14 (called 3 times via depcom)
15
16 \1 better written as $1
4438c4b7 17 use warnings 'syntax' ;
599cee73 18 s/(abc)/\1/;
19
20 warn(warn_nosemi)
21 Semicolon seems to be missing
22 $a = 1
23 &time ;
24
25
26 Reversed %c= operator
27 my $a =+ 2 ;
28 $a =- 2 ;
29 $a =* 2 ;
30 $a =% 2 ;
31 $a =& 2 ;
32 $a =. 2 ;
33 $a =^ 2 ;
34 $a =| 2 ;
35 $a =< 2 ;
36 $a =/ 2 ;
37
38 Multidimensional syntax %.*s not supported
39 my $a = $a[1,2] ;
40
41 You need to quote \"%s\""
42 sub fred {} ; $SIG{TERM} = fred;
43
44 Scalar value %.*s better written as $%.*s"
45 @a[3] = 2;
46 @a{3} = 2;
47
48 Can't use \\%c to mean $%c in expression
49 $_ = "ab" ; s/(ab)/\1/e;
50
51 Unquoted string "abc" may clash with future reserved word at - line 3.
52 warn(warn_reserved
53 $a = abc;
54
073ca4f1 55 chmod() mode argument is missing initial 0
599cee73 56 chmod 3;
57
58 Possible attempt to separate words with commas
59 @a = qw(a, b, c) ;
60
61 Possible attempt to put comments in qw() list
62 @a = qw(a b # c) ;
63
64 umask: argument is missing initial 0
65 umask 3;
66
67 %s (...) interpreted as function
68 print ("")
69 printf ("")
70 sort ("")
71
72 Ambiguous use of %c{%s%s} resolved to %c%s%s
73 $a = ${time[2]}
74 $a = ${time{2}}
75
76
77 Ambiguous use of %c{%s} resolved to %c%s
78 $a = ${time}
79 sub fred {} $a = ${fred}
80
81 Misplaced _ in number
82 $a = 1_2;
83 $a = 1_2345_6;
84
85 Bareword \"%s\" refers to nonexistent package
86 $a = FRED:: ;
87
88 Ambiguous call resolved as CORE::%s(), qualify as such or use &
89 sub time {}
90 my $a = time()
91
767a6a26 92 Unrecognized escape \\%c passed through
93 $a = "\m" ;
94
95 %s number > %s non-portable
96 my $a = 0b011111111111111111111111111111110 ;
97 $a = 0b011111111111111111111111111111111 ;
98 $a = 0b111111111111111111111111111111111 ;
99 $a = 0x0fffffffe ;
100 $a = 0x0ffffffff ;
101 $a = 0x1ffffffff ;
102 $a = 0037777777776 ;
103 $a = 0037777777777 ;
104 $a = 0047777777777 ;
105
106 Integer overflow in binary number
107 my $a = 0b011111111111111111111111111111110 ;
108 $a = 0b011111111111111111111111111111111 ;
109 $a = 0b111111111111111111111111111111111 ;
110 $a = 0x0fffffffe ;
111 $a = 0x0ffffffff ;
112 $a = 0x1ffffffff ;
113 $a = 0037777777776 ;
114 $a = 0037777777777 ;
115 $a = 0047777777777 ;
599cee73 116
0453d815 117 Mandatory Warnings
118 ------------------
119 Use of "%s" without parentheses is ambiguous [check_uni]
120 rand + 4
121
122 Ambiguous use of -%s resolved as -&%s() [yylex]
123 sub fred {} ; - fred ;
124
125 Precedence problem: open %.*s should be open(%.*s) [yylex]
126 open FOO || die;
127
128 Operator or semicolon missing before %c%s [yylex]
129 Ambiguous use of %c resolved as operator %c
130 *foo *foo
131
599cee73 132__END__
133# toke.c
4438c4b7 134use warnings 'deprecated' ;
599cee73 1351 if $a EQ $b ;
1361 if $a NE $b ;
1371 if $a GT $b ;
1381 if $a LT $b ;
1391 if $a GE $b ;
1401 if $a LE $b ;
4438c4b7 141no warnings 'deprecated' ;
0453d815 1421 if $a EQ $b ;
1431 if $a NE $b ;
1441 if $a GT $b ;
1451 if $a LT $b ;
1461 if $a GE $b ;
1471 if $a LE $b ;
599cee73 148EXPECT
149Use of EQ is deprecated at - line 3.
150Use of NE is deprecated at - line 4.
151Use of GT is deprecated at - line 5.
152Use of LT is deprecated at - line 6.
153Use of GE is deprecated at - line 7.
154Use of LE is deprecated at - line 8.
155########
156# toke.c
4438c4b7 157use warnings 'deprecated' ;
599cee73 158format STDOUT =
159@<<< @||| @>>> @>>>
160$a $b "abc" 'def'
161.
4438c4b7 162no warnings 'deprecated' ;
0453d815 163format STDOUT =
164@<<< @||| @>>> @>>>
165$a $b "abc" 'def'
166.
599cee73 167EXPECT
168Use of comma-less variable list is deprecated at - line 5.
169Use of comma-less variable list is deprecated at - line 5.
170Use of comma-less variable list is deprecated at - line 5.
599cee73 171########
172# toke.c
4438c4b7 173use warnings 'deprecated' ;
599cee73 174$a = <<;
175
4438c4b7 176no warnings 'deprecated' ;
0453d815 177$a = <<;
178
599cee73 179EXPECT
180Use of bare << to mean <<"" is deprecated at - line 3.
181########
182# toke.c
4438c4b7 183use warnings 'syntax' ;
599cee73 184s/(abc)/\1/;
4438c4b7 185no warnings 'syntax' ;
0453d815 186s/(abc)/\1/;
599cee73 187EXPECT
188\1 better written as $1 at - line 3.
189########
190# toke.c
4438c4b7 191use warnings 'semicolon' ;
599cee73 192$a = 1
193&time ;
4438c4b7 194no warnings 'semicolon' ;
0453d815 195$a = 1
196&time ;
599cee73 197EXPECT
198Semicolon seems to be missing at - line 3.
199########
200# toke.c
e4050d25 201BEGIN {
202 # Scalars leaked: due to syntax errors
203 $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
204}
4438c4b7 205use warnings 'syntax' ;
599cee73 206my $a =+ 2 ;
207$a =- 2 ;
208$a =* 2 ;
209$a =% 2 ;
210$a =& 2 ;
211$a =. 2 ;
212$a =^ 2 ;
213$a =| 2 ;
214$a =< 2 ;
215$a =/ 2 ;
216EXPECT
e4050d25 217Reversed += operator at - line 7.
218Reversed -= operator at - line 8.
219Reversed *= operator at - line 9.
220Reversed %= operator at - line 10.
221Reversed &= operator at - line 11.
222Reversed .= operator at - line 12.
e4050d25 223Reversed ^= operator at - line 13.
e4050d25 224Reversed |= operator at - line 14.
e4050d25 225Reversed <= operator at - line 15.
24944567 226syntax error at - line 12, near "=."
227syntax error at - line 13, near "=^"
228syntax error at - line 14, near "=|"
e4050d25 229Unterminated <> operator at - line 15.
599cee73 230########
231# toke.c
0453d815 232BEGIN {
233 # Scalars leaked: due to syntax errors
234 $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
235}
4438c4b7 236no warnings 'syntax' ;
0453d815 237my $a =+ 2 ;
238$a =- 2 ;
239$a =* 2 ;
240$a =% 2 ;
241$a =& 2 ;
242$a =. 2 ;
243$a =^ 2 ;
244$a =| 2 ;
245$a =< 2 ;
246$a =/ 2 ;
247EXPECT
248syntax error at - line 12, near "=."
249syntax error at - line 13, near "=^"
250syntax error at - line 14, near "=|"
251Unterminated <> operator at - line 15.
252########
253# toke.c
4438c4b7 254use warnings 'syntax' ;
599cee73 255my $a = $a[1,2] ;
4438c4b7 256no warnings 'syntax' ;
0453d815 257my $a = $a[1,2] ;
599cee73 258EXPECT
259Multidimensional syntax $a[1,2] not supported at - line 3.
260########
261# toke.c
4438c4b7 262use warnings 'syntax' ;
599cee73 263sub fred {} ; $SIG{TERM} = fred;
4438c4b7 264no warnings 'syntax' ;
0453d815 265$SIG{TERM} = fred;
599cee73 266EXPECT
267You need to quote "fred" at - line 3.
268########
269# toke.c
4438c4b7 270use warnings 'syntax' ;
599cee73 271@a[3] = 2;
272@a{3} = 2;
4438c4b7 273no warnings 'syntax' ;
0453d815 274@a[3] = 2;
275@a{3} = 2;
599cee73 276EXPECT
277Scalar value @a[3] better written as $a[3] at - line 3.
278Scalar value @a{3} better written as $a{3} at - line 4.
279########
280# toke.c
4438c4b7 281use warnings 'syntax' ;
599cee73 282$_ = "ab" ;
283s/(ab)/\1/e;
4438c4b7 284no warnings 'syntax' ;
0453d815 285$_ = "ab" ;
286s/(ab)/\1/e;
599cee73 287EXPECT
288Can't use \1 to mean $1 in expression at - line 4.
289########
290# toke.c
4438c4b7 291use warnings 'reserved' ;
599cee73 292$a = abc;
1c3923b3 293$a = { def
294
295=> 1 };
4438c4b7 296no warnings 'reserved' ;
0453d815 297$a = abc;
599cee73 298EXPECT
299Unquoted string "abc" may clash with future reserved word at - line 3.
300########
301# toke.c
e476b1b5 302use warnings 'chmod' ;
599cee73 303chmod 3;
e476b1b5 304no warnings 'chmod' ;
0453d815 305chmod 3;
599cee73 306EXPECT
073ca4f1 307chmod() mode argument is missing initial 0 at - line 3.
599cee73 308########
309# toke.c
e476b1b5 310use warnings 'qw' ;
599cee73 311@a = qw(a, b, c) ;
e476b1b5 312no warnings 'qw' ;
0453d815 313@a = qw(a, b, c) ;
599cee73 314EXPECT
315Possible attempt to separate words with commas at - line 3.
316########
317# toke.c
e476b1b5 318use warnings 'qw' ;
599cee73 319@a = qw(a b #) ;
e476b1b5 320no warnings 'qw' ;
0453d815 321@a = qw(a b #) ;
599cee73 322EXPECT
323Possible attempt to put comments in qw() list at - line 3.
324########
325# toke.c
e476b1b5 326use warnings 'umask' ;
599cee73 327umask 3;
e476b1b5 328no warnings 'umask' ;
0453d815 329umask 3;
599cee73 330EXPECT
4438c4b7 331umask: argument is missing initial 0 at - line 3.
599cee73 332########
333# toke.c
4438c4b7 334use warnings 'syntax' ;
599cee73 335print ("")
336EXPECT
337print (...) interpreted as function at - line 3.
338########
339# toke.c
4438c4b7 340no warnings 'syntax' ;
0453d815 341print ("")
342EXPECT
343
344########
345# toke.c
4438c4b7 346use warnings 'syntax' ;
599cee73 347printf ("")
348EXPECT
349printf (...) interpreted as function at - line 3.
350########
351# toke.c
4438c4b7 352no warnings 'syntax' ;
0453d815 353printf ("")
354EXPECT
355
356########
357# toke.c
4438c4b7 358use warnings 'syntax' ;
599cee73 359sort ("")
360EXPECT
361sort (...) interpreted as function at - line 3.
362########
363# toke.c
4438c4b7 364no warnings 'syntax' ;
0453d815 365sort ("")
366EXPECT
367
368########
369# toke.c
4438c4b7 370use warnings 'ambiguous' ;
599cee73 371$a = ${time[2]};
4438c4b7 372no warnings 'ambiguous' ;
0453d815 373$a = ${time[2]};
599cee73 374EXPECT
375Ambiguous use of ${time[...]} resolved to $time[...] at - line 3.
376########
377# toke.c
4438c4b7 378use warnings 'ambiguous' ;
599cee73 379$a = ${time{2}};
380EXPECT
381Ambiguous use of ${time{...}} resolved to $time{...} at - line 3.
382########
383# toke.c
4438c4b7 384no warnings 'ambiguous' ;
0453d815 385$a = ${time{2}};
386EXPECT
387
388########
389# toke.c
4438c4b7 390use warnings 'ambiguous' ;
599cee73 391$a = ${time} ;
4438c4b7 392no warnings 'ambiguous' ;
0453d815 393$a = ${time} ;
599cee73 394EXPECT
395Ambiguous use of ${time} resolved to $time at - line 3.
396########
397# toke.c
4438c4b7 398use warnings 'ambiguous' ;
599cee73 399sub fred {}
400$a = ${fred} ;
4438c4b7 401no warnings 'ambiguous' ;
0453d815 402$a = ${fred} ;
599cee73 403EXPECT
404Ambiguous use of ${fred} resolved to $fred at - line 4.
405########
406# toke.c
4438c4b7 407use warnings 'syntax' ;
599cee73 408$a = 1_2;
409$a = 1_2345_6;
4438c4b7 410no warnings 'syntax' ;
0453d815 411$a = 1_2;
412$a = 1_2345_6;
599cee73 413EXPECT
414Misplaced _ in number at - line 3.
415Misplaced _ in number at - line 4.
416Misplaced _ in number at - line 4.
417########
418# toke.c
e476b1b5 419use warnings 'bareword' ;
60e6418e 420#line 25 "bar"
599cee73 421$a = FRED:: ;
e476b1b5 422no warnings 'bareword' ;
0453d815 423#line 25 "bar"
424$a = FRED:: ;
599cee73 425EXPECT
60e6418e 426Bareword "FRED::" refers to nonexistent package at bar line 25.
599cee73 427########
428# toke.c
4438c4b7 429use warnings 'ambiguous' ;
599cee73 430sub time {}
0453d815 431my $a = time() ;
4438c4b7 432no warnings 'ambiguous' ;
0453d815 433my $b = time() ;
599cee73 434EXPECT
435Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4.
436########
437# toke.c
26d16222 438use warnings ;
0453d815 439eval <<'EOE';
df0deb90 440# line 30 "foo"
441warn "yelp";
0453d815 442{
0453d815 443 $_ = " \x{123} " ;
444}
445EOE
446EXPECT
df0deb90 447yelp at foo line 30.
0453d815 448########
449# toke.c
0453d815 450my $a = rand + 4 ;
451EXPECT
452Warning: Use of "rand" without parens is ambiguous at - line 2.
453########
454# toke.c
455$^W = 0 ;
456my $a = rand + 4 ;
457{
4438c4b7 458 no warnings 'ambiguous' ;
0453d815 459 $a = rand + 4 ;
4438c4b7 460 use warnings 'ambiguous' ;
0453d815 461 $a = rand + 4 ;
462}
463$a = rand + 4 ;
464EXPECT
465Warning: Use of "rand" without parens is ambiguous at - line 3.
466Warning: Use of "rand" without parens is ambiguous at - line 8.
467Warning: Use of "rand" without parens is ambiguous at - line 10.
468########
469# toke.c
470sub fred {};
471-fred ;
472EXPECT
473Ambiguous use of -fred resolved as -&fred() at - line 3.
474########
475# toke.c
476$^W = 0 ;
477sub fred {} ;
478-fred ;
479{
4438c4b7 480 no warnings 'ambiguous' ;
0453d815 481 -fred ;
4438c4b7 482 use warnings 'ambiguous' ;
0453d815 483 -fred ;
484}
485-fred ;
486EXPECT
487Ambiguous use of -fred resolved as -&fred() at - line 4.
488Ambiguous use of -fred resolved as -&fred() at - line 9.
489Ambiguous use of -fred resolved as -&fred() at - line 11.
490########
491# toke.c
492open FOO || time;
493EXPECT
494Precedence problem: open FOO should be open(FOO) at - line 2.
495########
496# toke.c
497$^W = 0 ;
498open FOO || time;
499{
e476b1b5 500 no warnings 'precedence' ;
0453d815 501 open FOO || time;
e476b1b5 502 use warnings 'precedence' ;
0453d815 503 open FOO || time;
504}
505open FOO || time;
506EXPECT
507Precedence problem: open FOO should be open(FOO) at - line 3.
508Precedence problem: open FOO should be open(FOO) at - line 8.
509Precedence problem: open FOO should be open(FOO) at - line 10.
510########
511# toke.c
512$^W = 0 ;
513*foo *foo ;
514{
4438c4b7 515 no warnings 'ambiguous' ;
0453d815 516 *foo *foo ;
4438c4b7 517 use warnings 'ambiguous' ;
0453d815 518 *foo *foo ;
519}
520*foo *foo ;
521EXPECT
522Operator or semicolon missing before *foo at - line 3.
523Ambiguous use of * resolved as operator * at - line 3.
524Operator or semicolon missing before *foo at - line 8.
525Ambiguous use of * resolved as operator * at - line 8.
526Operator or semicolon missing before *foo at - line 10.
527Ambiguous use of * resolved as operator * at - line 10.
767a6a26 528########
529# toke.c
e476b1b5 530use warnings 'misc' ;
767a6a26 531my $a = "\m" ;
52471064 532my $b = "\_" ;
e476b1b5 533no warnings 'misc' ;
767a6a26 534$a = "\m" ;
52471064 535$b = "\_" ;
767a6a26 536EXPECT
537Unrecognized escape \m passed through at - line 3.
538########
539# toke.c
540use warnings 'portable' ;
541my $a = 0b011111111111111111111111111111110 ;
542 $a = 0b011111111111111111111111111111111 ;
543 $a = 0b111111111111111111111111111111111 ;
544 $a = 0x0fffffffe ;
545 $a = 0x0ffffffff ;
546 $a = 0x1ffffffff ;
547 $a = 0037777777776 ;
548 $a = 0037777777777 ;
549 $a = 0047777777777 ;
550no warnings 'portable' ;
551 $a = 0b011111111111111111111111111111110 ;
552 $a = 0b011111111111111111111111111111111 ;
553 $a = 0b111111111111111111111111111111111 ;
554 $a = 0x0fffffffe ;
555 $a = 0x0ffffffff ;
556 $a = 0x1ffffffff ;
557 $a = 0037777777776 ;
558 $a = 0037777777777 ;
559 $a = 0047777777777 ;
560EXPECT
561Binary number > 0b11111111111111111111111111111111 non-portable at - line 5.
562Hexadecimal number > 0xffffffff non-portable at - line 8.
563Octal number > 037777777777 non-portable at - line 11.
564########
565# toke.c
566use warnings 'overflow' ;
567my $a = 0b011111111111111111111111111111110 ;
568 $a = 0b011111111111111111111111111111111 ;
15041a67 569 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
767a6a26 570 $a = 0x0fffffffe ;
571 $a = 0x0ffffffff ;
15041a67 572 $a = 0x10000000000000000 ;
767a6a26 573 $a = 0037777777776 ;
574 $a = 0037777777777 ;
15041a67 575 $a = 002000000000000000000000;
767a6a26 576no warnings 'overflow' ;
577 $a = 0b011111111111111111111111111111110 ;
578 $a = 0b011111111111111111111111111111111 ;
15041a67 579 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
767a6a26 580 $a = 0x0fffffffe ;
581 $a = 0x0ffffffff ;
15041a67 582 $a = 0x10000000000000000 ;
767a6a26 583 $a = 0037777777776 ;
584 $a = 0037777777777 ;
15041a67 585 $a = 002000000000000000000000;
767a6a26 586EXPECT
587Integer overflow in binary number at - line 5.
588Integer overflow in hexadecimal number at - line 8.
589Integer overflow in octal number at - line 11.
8593bda5 590########
591# toke.c
592use warnings 'ambiguous';
593"@mjd_previously_unused_array";
594no warnings 'ambiguous';
595"@mjd_previously_unused_array";
596EXPECT
597Possible unintended interpolation of @mjd_previously_unused_array in string at - line 3.