Once more unto resync
[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.
223syntax error at - line 12, near "=."
224Reversed ^= operator at - line 13.
225syntax error at - line 13, near "=^"
226Reversed |= operator at - line 14.
227syntax error at - line 14, near "=|"
228Reversed <= operator at - line 15.
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;
4438c4b7 293no warnings 'reserved' ;
0453d815 294$a = abc;
599cee73 295EXPECT
296Unquoted string "abc" may clash with future reserved word at - line 3.
297########
298# toke.c
e476b1b5 299use warnings 'chmod' ;
599cee73 300chmod 3;
e476b1b5 301no warnings 'chmod' ;
0453d815 302chmod 3;
599cee73 303EXPECT
073ca4f1 304chmod() mode argument is missing initial 0 at - line 3.
599cee73 305########
306# toke.c
e476b1b5 307use warnings 'qw' ;
599cee73 308@a = qw(a, b, c) ;
e476b1b5 309no warnings 'qw' ;
0453d815 310@a = qw(a, b, c) ;
599cee73 311EXPECT
312Possible attempt to separate words with commas at - line 3.
313########
314# toke.c
e476b1b5 315use warnings 'qw' ;
599cee73 316@a = qw(a b #) ;
e476b1b5 317no warnings 'qw' ;
0453d815 318@a = qw(a b #) ;
599cee73 319EXPECT
320Possible attempt to put comments in qw() list at - line 3.
321########
322# toke.c
e476b1b5 323use warnings 'umask' ;
599cee73 324umask 3;
e476b1b5 325no warnings 'umask' ;
0453d815 326umask 3;
599cee73 327EXPECT
4438c4b7 328umask: argument is missing initial 0 at - line 3.
599cee73 329########
330# toke.c
4438c4b7 331use warnings 'syntax' ;
599cee73 332print ("")
333EXPECT
334print (...) interpreted as function at - line 3.
335########
336# toke.c
4438c4b7 337no warnings 'syntax' ;
0453d815 338print ("")
339EXPECT
340
341########
342# toke.c
4438c4b7 343use warnings 'syntax' ;
599cee73 344printf ("")
345EXPECT
346printf (...) interpreted as function at - line 3.
347########
348# toke.c
4438c4b7 349no warnings 'syntax' ;
0453d815 350printf ("")
351EXPECT
352
353########
354# toke.c
4438c4b7 355use warnings 'syntax' ;
599cee73 356sort ("")
357EXPECT
358sort (...) interpreted as function at - line 3.
359########
360# toke.c
4438c4b7 361no warnings 'syntax' ;
0453d815 362sort ("")
363EXPECT
364
365########
366# toke.c
4438c4b7 367use warnings 'ambiguous' ;
599cee73 368$a = ${time[2]};
4438c4b7 369no warnings 'ambiguous' ;
0453d815 370$a = ${time[2]};
599cee73 371EXPECT
372Ambiguous use of ${time[...]} resolved to $time[...] at - line 3.
373########
374# toke.c
4438c4b7 375use warnings 'ambiguous' ;
599cee73 376$a = ${time{2}};
377EXPECT
378Ambiguous use of ${time{...}} resolved to $time{...} at - line 3.
379########
380# toke.c
4438c4b7 381no warnings 'ambiguous' ;
0453d815 382$a = ${time{2}};
383EXPECT
384
385########
386# toke.c
4438c4b7 387use warnings 'ambiguous' ;
599cee73 388$a = ${time} ;
4438c4b7 389no warnings 'ambiguous' ;
0453d815 390$a = ${time} ;
599cee73 391EXPECT
392Ambiguous use of ${time} resolved to $time at - line 3.
393########
394# toke.c
4438c4b7 395use warnings 'ambiguous' ;
599cee73 396sub fred {}
397$a = ${fred} ;
4438c4b7 398no warnings 'ambiguous' ;
0453d815 399$a = ${fred} ;
599cee73 400EXPECT
401Ambiguous use of ${fred} resolved to $fred at - line 4.
402########
403# toke.c
4438c4b7 404use warnings 'syntax' ;
599cee73 405$a = 1_2;
406$a = 1_2345_6;
4438c4b7 407no warnings 'syntax' ;
0453d815 408$a = 1_2;
409$a = 1_2345_6;
599cee73 410EXPECT
411Misplaced _ in number at - line 3.
412Misplaced _ in number at - line 4.
413Misplaced _ in number at - line 4.
414########
415# toke.c
e476b1b5 416use warnings 'bareword' ;
60e6418e 417#line 25 "bar"
599cee73 418$a = FRED:: ;
e476b1b5 419no warnings 'bareword' ;
0453d815 420#line 25 "bar"
421$a = FRED:: ;
599cee73 422EXPECT
60e6418e 423Bareword "FRED::" refers to nonexistent package at bar line 25.
599cee73 424########
425# toke.c
4438c4b7 426use warnings 'ambiguous' ;
599cee73 427sub time {}
0453d815 428my $a = time() ;
4438c4b7 429no warnings 'ambiguous' ;
0453d815 430my $b = time() ;
599cee73 431EXPECT
432Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4.
433########
434# toke.c
26d16222 435use warnings ;
0453d815 436eval <<'EOE';
437{
438#line 30 "foo"
439 $_ = " \x{123} " ;
440}
441EOE
442EXPECT
443
444########
445# toke.c
0453d815 446my $a = rand + 4 ;
447EXPECT
448Warning: Use of "rand" without parens is ambiguous at - line 2.
449########
450# toke.c
451$^W = 0 ;
452my $a = rand + 4 ;
453{
4438c4b7 454 no warnings 'ambiguous' ;
0453d815 455 $a = rand + 4 ;
4438c4b7 456 use warnings 'ambiguous' ;
0453d815 457 $a = rand + 4 ;
458}
459$a = rand + 4 ;
460EXPECT
461Warning: Use of "rand" without parens is ambiguous at - line 3.
462Warning: Use of "rand" without parens is ambiguous at - line 8.
463Warning: Use of "rand" without parens is ambiguous at - line 10.
464########
465# toke.c
466sub fred {};
467-fred ;
468EXPECT
469Ambiguous use of -fred resolved as -&fred() at - line 3.
470########
471# toke.c
472$^W = 0 ;
473sub fred {} ;
474-fred ;
475{
4438c4b7 476 no warnings 'ambiguous' ;
0453d815 477 -fred ;
4438c4b7 478 use warnings 'ambiguous' ;
0453d815 479 -fred ;
480}
481-fred ;
482EXPECT
483Ambiguous use of -fred resolved as -&fred() at - line 4.
484Ambiguous use of -fred resolved as -&fred() at - line 9.
485Ambiguous use of -fred resolved as -&fred() at - line 11.
486########
487# toke.c
488open FOO || time;
489EXPECT
490Precedence problem: open FOO should be open(FOO) at - line 2.
491########
492# toke.c
493$^W = 0 ;
494open FOO || time;
495{
e476b1b5 496 no warnings 'precedence' ;
0453d815 497 open FOO || time;
e476b1b5 498 use warnings 'precedence' ;
0453d815 499 open FOO || time;
500}
501open FOO || time;
502EXPECT
503Precedence problem: open FOO should be open(FOO) at - line 3.
504Precedence problem: open FOO should be open(FOO) at - line 8.
505Precedence problem: open FOO should be open(FOO) at - line 10.
506########
507# toke.c
508$^W = 0 ;
509*foo *foo ;
510{
4438c4b7 511 no warnings 'ambiguous' ;
0453d815 512 *foo *foo ;
4438c4b7 513 use warnings 'ambiguous' ;
0453d815 514 *foo *foo ;
515}
516*foo *foo ;
517EXPECT
518Operator or semicolon missing before *foo at - line 3.
519Ambiguous use of * resolved as operator * at - line 3.
520Operator or semicolon missing before *foo at - line 8.
521Ambiguous use of * resolved as operator * at - line 8.
522Operator or semicolon missing before *foo at - line 10.
523Ambiguous use of * resolved as operator * at - line 10.
767a6a26 524########
525# toke.c
e476b1b5 526use warnings 'misc' ;
767a6a26 527my $a = "\m" ;
e476b1b5 528no warnings 'misc' ;
767a6a26 529$a = "\m" ;
530EXPECT
531Unrecognized escape \m passed through at - line 3.
532########
533# toke.c
534use warnings 'portable' ;
535my $a = 0b011111111111111111111111111111110 ;
536 $a = 0b011111111111111111111111111111111 ;
537 $a = 0b111111111111111111111111111111111 ;
538 $a = 0x0fffffffe ;
539 $a = 0x0ffffffff ;
540 $a = 0x1ffffffff ;
541 $a = 0037777777776 ;
542 $a = 0037777777777 ;
543 $a = 0047777777777 ;
544no warnings 'portable' ;
545 $a = 0b011111111111111111111111111111110 ;
546 $a = 0b011111111111111111111111111111111 ;
547 $a = 0b111111111111111111111111111111111 ;
548 $a = 0x0fffffffe ;
549 $a = 0x0ffffffff ;
550 $a = 0x1ffffffff ;
551 $a = 0037777777776 ;
552 $a = 0037777777777 ;
553 $a = 0047777777777 ;
554EXPECT
555Binary number > 0b11111111111111111111111111111111 non-portable at - line 5.
556Hexadecimal number > 0xffffffff non-portable at - line 8.
557Octal number > 037777777777 non-portable at - line 11.
558########
559# toke.c
560use warnings 'overflow' ;
561my $a = 0b011111111111111111111111111111110 ;
562 $a = 0b011111111111111111111111111111111 ;
15041a67 563 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
767a6a26 564 $a = 0x0fffffffe ;
565 $a = 0x0ffffffff ;
15041a67 566 $a = 0x10000000000000000 ;
767a6a26 567 $a = 0037777777776 ;
568 $a = 0037777777777 ;
15041a67 569 $a = 002000000000000000000000;
767a6a26 570no warnings 'overflow' ;
571 $a = 0b011111111111111111111111111111110 ;
572 $a = 0b011111111111111111111111111111111 ;
15041a67 573 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
767a6a26 574 $a = 0x0fffffffe ;
575 $a = 0x0ffffffff ;
15041a67 576 $a = 0x10000000000000000 ;
767a6a26 577 $a = 0037777777776 ;
578 $a = 0037777777777 ;
15041a67 579 $a = 002000000000000000000000;
767a6a26 580EXPECT
581Integer overflow in binary number at - line 5.
582Integer overflow in hexadecimal number at - line 8.
583Integer overflow in octal number at - line 11.