This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
PATCH: [perl #119101] Extraneous warnings in Parse::ErrorString::Perl
[perl5.git] / t / lib / warnings / toke
1 toke.c  AOK
2
3     we seem to have lost a few ambiguous warnings!!
4
5  
6                 $a = <<;
7                 Use of comma-less variable list is deprecated 
8                 (called 3 times via depcom)
9
10      \1 better written as $1 
11         use warnings 'syntax' ;
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
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
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
80     Unrecognized escape \\%c passed through
81         $a = "\m" ;
82
83     Useless use of \\E.
84         $a = "abcd\E" ;
85
86     %s number > %s non-portable
87         my $a =  0b011111111111111111111111111111110 ;
88         $a =  0b011111111111111111111111111111111 ;
89         $a =  0b111111111111111111111111111111111 ;
90         $a =  0x0fffffffe ;
91         $a =  0x0ffffffff ;
92         $a =  0x1ffffffff ;
93         $a =  0037777777776 ;
94         $a =  0037777777777 ;
95         $a =  0047777777777 ;
96
97     Integer overflow in binary number
98         my $a =  0b011111111111111111111111111111110 ;
99         $a =  0b011111111111111111111111111111111 ;
100         $a =  0b111111111111111111111111111111111 ;
101         $a =  0x0fffffffe ;
102         $a =  0x0ffffffff ;
103         $a =  0x1ffffffff ;
104         $a =  0037777777776 ;
105         $a =  0037777777777 ;
106         $a =  0047777777777 ;
107
108     dump() better written as CORE::dump()
109
110     Use of /c modifier is meaningless without /g     
111
112     Use of /c modifier is meaningless in s///
113
114     Mandatory Warnings
115     ------------------
116     Use of "%s" without parentheses is ambiguous        [check_uni]
117         rand + 4 
118
119     Ambiguous use of -%s resolved as -&%s()             [yylex]
120         sub fred {} ; - fred ;
121
122     Precedence problem: open %.*s should be open(%.*s)  [yylex]
123         open FOO || die;
124
125     Operator or semicolon missing before %c%s           [yylex]
126     Ambiguous use of %c resolved as operator %c
127         *foo *foo
128
129 __END__
130 # toke.c 
131 format STDOUT =
132 @<<<  @|||  @>>>  @>>>
133 $a    $b    "abc" 'def'
134 .
135 no warnings 'deprecated' ;
136 format STDOUT =
137 @<<<  @|||  @>>>  @>>>
138 $a    $b    "abc" 'def'
139 .
140 EXPECT
141 Use of comma-less variable list is deprecated at - line 4.
142 Use of comma-less variable list is deprecated at - line 4.
143 Use of comma-less variable list is deprecated at - line 4.
144 ########
145 # toke.c
146 $a = <<;
147
148 no warnings 'deprecated' ;
149 $a = <<;
150
151 EXPECT
152 Use of bare << to mean <<"" is deprecated at - line 2.
153 ########
154 # toke.c
155 $a =~ m/$foo/eq;
156 $a =~ s/$foo/fool/seq;
157
158 EXPECT
159 OPTION fatal
160 Unknown regexp modifier "/e" at - line 2, near "=~ "
161 Unknown regexp modifier "/q" at - line 2, near "=~ "
162 Unknown regexp modifier "/q" at - line 3, near "=~ "
163 Execution of - aborted due to compilation errors.
164 ########
165 # toke.c
166 use utf8;
167 use open qw( :utf8 :std );
168 $a =~ m/$foo/eネq;
169 $a =~ s/$foo/fool/seネq;
170
171 EXPECT
172 OPTION fatal
173 Unknown regexp modifier "/e" at - line 4, near "=~ "
174 Unknown regexp modifier "/ネ" at - line 4, near "=~ "
175 Unknown regexp modifier "/q" at - line 4, near "=~ "
176 Unknown regexp modifier "/ネ" at - line 5, near "=~ "
177 Unknown regexp modifier "/q" at - line 5, near "=~ "
178 Execution of - aborted due to compilation errors.
179 ########
180 # toke.c
181 use warnings 'syntax' ;
182 s/(abc)/\1/;
183 no warnings 'syntax' ;
184 s/(abc)/\1/;
185 EXPECT
186 \1 better written as $1 at - line 3.
187 ########
188 # toke.c
189 use warnings 'semicolon' ;
190 $a = 1
191 &time ;
192 no warnings 'semicolon' ;
193 $a = 1
194 &time ;
195 EXPECT
196 Semicolon seems to be missing at - line 3.
197 ########
198 # toke.c
199 use warnings 'syntax' ;
200 my $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 ;
210 EXPECT
211 Reversed += operator at - line 3.
212 Reversed -= operator at - line 4.
213 Reversed *= operator at - line 5.
214 Reversed %= operator at - line 6.
215 Reversed &= operator at - line 7.
216 Reversed .= operator at - line 8.
217 Reversed ^= operator at - line 9.
218 Reversed |= operator at - line 10.
219 Reversed <= operator at - line 11.
220 syntax error at - line 8, near "=."
221 syntax error at - line 9, near "=^"
222 syntax error at - line 10, near "=|"
223 Unterminated <> operator at - line 11.
224 ########
225 # toke.c
226 no warnings 'syntax' ;
227 my $a =+ 2 ;
228 $a =- 2 ;
229 $a =* 2 ;
230 $a =% 2 ;
231 $a =& 2 ;
232 $a =. 2 ;
233 $a =^ 2 ;
234 $a =| 2 ;
235 $a =< 2 ;
236 $a =/ 2 ;
237 EXPECT
238 syntax error at - line 8, near "=."
239 syntax error at - line 9, near "=^"
240 syntax error at - line 10, near "=|"
241 Unterminated <> operator at - line 11.
242 ########
243 # toke.c
244 use warnings 'syntax' ;
245 my $a = $a[1,2] ;
246 no warnings 'syntax' ;
247 my $a = $a[1,2] ;
248 EXPECT
249 Multidimensional syntax $a[1,2] not supported at - line 3.
250 ########
251 # toke.c
252 use warnings 'syntax' ;
253 sub fred {} ; $SIG{TERM} = fred;
254 no warnings 'syntax' ;
255 $SIG{TERM} = fred;
256 EXPECT
257 You need to quote "fred" at - line 3.
258 ########
259 # toke.c
260 use utf8;
261 use open qw( :utf8 :std );
262 use warnings 'syntax' ;
263 sub frèd {} ; $SIG{TERM} = frèd;
264 no warnings 'syntax' ;
265 $SIG{TERM} = frèd;
266 EXPECT
267 You need to quote "frèd" at - line 5.
268 ########
269 # toke.c
270 use utf8;
271 use open qw( :utf8 :std );
272 use warnings 'syntax' ;
273 sub ふれど {} ; $SIG{TERM} = ふれど;
274 no warnings 'syntax' ;
275 $SIG{TERM} = ふれど;
276 EXPECT
277 You need to quote "ふれど" at - line 5.
278 ########
279 # toke.c
280 use warnings 'syntax' ;
281 @a[3] = 2;
282 @a{3} = 2;
283 no warnings 'syntax' ;
284 @a[3] = 2;
285 @a{3} = 2;
286 EXPECT
287 Scalar value @a[3] better written as $a[3] at - line 3.
288 Scalar value @a{3} better written as $a{3} at - line 4.
289 ########
290 # toke.c
291 use utf8;
292 use open qw( :utf8 :std );
293 use warnings 'syntax' ;
294 @à[3] = 2;
295 @à{3} = 2;
296 no warnings 'syntax' ;
297 @à[3] = 2;
298 @à{3} = 2;
299 EXPECT
300 Scalar value @à[3] better written as $à[3] at - line 5.
301 Scalar value @à{3} better written as $à{3} at - line 6.
302 ########
303 # toke.c
304 use utf8;
305 use open qw( :utf8 :std );
306 use warnings 'syntax' ;
307 @ぁ[3] = 2;
308 @ぁ{3} = 2;
309 no warnings 'syntax' ;
310 @ぁ[3] = 2;
311 @ぁ{3} = 2;
312 EXPECT
313 Scalar value @ぁ[3] better written as $ぁ[3] at - line 5.
314 Scalar value @ぁ{3} better written as $ぁ{3} at - line 6.
315 ########
316 # toke.c
317 use warnings 'syntax' ;
318 $_ = "ab" ; 
319 s/(ab)/\1/e;
320 no warnings 'syntax' ;
321 $_ = "ab" ; 
322 s/(ab)/\1/e;
323 EXPECT
324 Can't use \1 to mean $1 in expression at - line 4.
325 ########
326 # toke.c
327 use warnings 'reserved' ;
328 $a = abc;
329 $a = { def
330
331 => 1 };
332 no warnings 'reserved' ;
333 $a = abc;
334 EXPECT
335 Unquoted string "abc" may clash with future reserved word at - line 3.
336 ########
337 # toke.c
338 use warnings 'qw' ;
339 @a = qw(a, b, c) ;
340 no warnings 'qw' ;
341 @a = qw(a, b, c) ;
342 EXPECT
343 Possible attempt to separate words with commas at - line 3.
344 ########
345 # toke.c
346 use warnings 'qw' ;
347 @a = qw(a b c # #) ;
348 no warnings 'qw' ;
349 @a = qw(a b c # #) ;
350 EXPECT
351 Possible attempt to put comments in qw() list at - line 3.
352 ########
353 # toke.c
354 use warnings 'qw' ;
355 @a = qw(a, b, c # #) ;
356 no warnings 'qw' ;
357 @a = qw(a, b, c # #) ;
358 EXPECT
359 Possible attempt to separate words with commas at - line 3.
360 Possible attempt to put comments in qw() list at - line 3.
361 ########
362 # toke.c
363 use warnings 'syntax' ;
364 print ("");
365 print ("") and $x = 1;
366 print ("") or die;
367 print ("") // die;
368 print (1+2) * 3 if 0; # only this one should warn
369 print (1+2) if 0;
370 EXPECT
371 print (...) interpreted as function at - line 7.
372 ########
373 # toke.c
374 no warnings 'syntax' ;
375 print ("")
376 EXPECT
377
378 ########
379 # toke.c
380 use warnings 'syntax' ;
381 printf ("");
382 printf ("") . '';
383 EXPECT
384 printf (...) interpreted as function at - line 4.
385 ########
386 # toke.c
387 no warnings 'syntax' ;
388 printf ("")
389 EXPECT
390
391 ########
392 # toke.c
393 use warnings 'syntax' ;
394 sort ("");
395 sort ("") . '';
396 EXPECT
397 sort (...) interpreted as function at - line 4.
398 ########
399 # toke.c
400 no warnings 'syntax' ;
401 sort ("")
402 EXPECT
403
404 ########
405 # toke.c
406 use warnings 'ambiguous' ;
407 $a = ${time[2]};
408 no warnings 'ambiguous' ;
409 $a = ${time[2]};
410 EXPECT
411 Ambiguous use of ${time[...]} resolved to $time[...] at - line 3.
412 ########
413 # toke.c
414 use warnings 'ambiguous' ;
415 $a = ${time{2}};
416 EXPECT
417 Ambiguous use of ${time{...}} resolved to $time{...} at - line 3.
418 ########
419 # toke.c
420 no warnings 'ambiguous' ;
421 $a = ${time{2}};
422 EXPECT
423
424 ########
425 # toke.c
426 use warnings 'ambiguous' ;
427 $a = ${time} ;
428 $a = @{time} ;
429 $a = $#{time} ; # This one is special cased in toke.c
430 $a = %{time} ;
431 $a = *{time} ;
432 $a = defined &{time} ; # To avoid calling &::time
433 no warnings 'ambiguous' ;
434 $a = ${time} ;
435 $a = @{time} ;
436 $a = $#{time} ; # This one is special cased in toke.c
437 $a = %{time} ;
438 $a = *{time} ;
439 $a = defined &{time} ; # To avoid calling &::time
440 EXPECT
441 Ambiguous use of ${time} resolved to $time at - line 3.
442 Ambiguous use of @{time} resolved to @time at - line 4.
443 Ambiguous use of @{time} resolved to @time at - line 5.
444 Ambiguous use of %{time} resolved to %time at - line 6.
445 Ambiguous use of *{time} resolved to *time at - line 7.
446 Ambiguous use of &{time} resolved to &time at - line 8.
447 ########
448 # toke.c
449 use warnings 'ambiguous' ;
450 sub fred {}
451 $a = ${fred} ;
452 no warnings 'ambiguous' ;
453 $a = ${fred} ;
454 EXPECT
455 Ambiguous use of ${fred} resolved to $fred at - line 4.
456 ########
457 # toke.c
458 use warnings 'syntax' ;
459 $a = _123; print "$a\n";                #( 3    string)
460 $a = 1_23; print "$a\n";
461 $a = 12_3; print "$a\n";
462 $a = 123_; print "$a\n";                #  6
463 $a = _+123; print "$a\n";               #  7    string)
464 $a = +_123; print "$a\n";               #( 8    string)
465 $a = +1_23; print "$a\n";
466 $a = +12_3; print "$a\n";
467 $a = +123_; print "$a\n";               # 11
468 $a = _-123; print "$a\n";               #(12    string)
469 $a = -_123; print "$a\n";               #(13    string)
470 $a = -1_23; print "$a\n";
471 $a = -12_3; print "$a\n";
472 $a = -123_; print "$a\n";               # 16
473 $a = 123._456; print "$a\n";            # 17
474 $a = 123.4_56; print "$a\n";
475 $a = 123.45_6; print "$a\n";
476 $a = 123.456_; print "$a\n";            # 20
477 $a = +123._456; print "$a\n";           # 21
478 $a = +123.4_56; print "$a\n";   
479 $a = +123.45_6; print "$a\n";   
480 $a = +123.456_; print "$a\n";           # 24
481 $a = -123._456; print "$a\n";           # 25
482 $a = -123.4_56; print "$a\n";   
483 $a = -123.45_6; print "$a\n";
484 $a = -123.456_; print "$a\n";           # 28
485 $a = 123.456E_12; printf("%.0f\n", $a); # 29
486 $a = 123.456E1_2; printf("%.0f\n", $a);
487 $a = 123.456E12_; printf("%.0f\n", $a); # 31
488 $a = 123.456E_+12; printf("%.0f\n", $a);        # 32
489 $a = 123.456E+_12; printf("%.0f\n", $a);        # 33
490 $a = 123.456E+1_2; printf("%.0f\n", $a);
491 $a = 123.456E+12_; printf("%.0f\n", $a);        # 35
492 $a = 123.456E_-12; print "$a\n";        # 36
493 $a = 123.456E-_12; print "$a\n";        # 37
494 $a = 123.456E-1_2; print "$a\n";
495 $a = 123.456E-12_; print "$a\n";        # 39
496 $a = 1__23; print "$a\n";               # 40
497 $a = 12.3__4; print "$a\n";             # 41
498 $a = 12.34e1__2; printf("%.0f\n", $a);  # 42
499 no warnings 'syntax' ;
500 $a = _123; print "$a\n";
501 $a = 1_23; print "$a\n";
502 $a = 12_3; print "$a\n";
503 $a = 123_; print "$a\n";
504 $a = _+123; print "$a\n";
505 $a = +_123; print "$a\n";
506 $a = +1_23; print "$a\n";
507 $a = +12_3; print "$a\n";
508 $a = +123_; print "$a\n";
509 $a = _-123; print "$a\n";
510 $a = -_123; print "$a\n";
511 $a = -1_23; print "$a\n";
512 $a = -12_3; print "$a\n";
513 $a = -123_; print "$a\n";
514 $a = 123._456; print "$a\n";
515 $a = 123.4_56; print "$a\n";
516 $a = 123.45_6; print "$a\n";
517 $a = 123.456_; print "$a\n";
518 $a = +123._456; print "$a\n";
519 $a = +123.4_56; print "$a\n";
520 $a = +123.45_6; print "$a\n";
521 $a = +123.456_; print "$a\n";
522 $a = -123._456; print "$a\n";
523 $a = -123.4_56; print "$a\n";
524 $a = -123.45_6; print "$a\n";
525 $a = -123.456_; print "$a\n";
526 $a = 123.456E_12; printf("%.0f\n", $a);
527 $a = 123.456E1_2; printf("%.0f\n", $a);
528 $a = 123.456E12_; printf("%.0f\n", $a);
529 $a = 123.456E_+12; printf("%.0f\n", $a);
530 $a = 123.456E+_12; printf("%.0f\n", $a);
531 $a = 123.456E+1_2; printf("%.0f\n", $a);
532 $a = 123.456E+12_; printf("%.0f\n", $a);
533 $a = 123.456E_-12; print "$a\n";
534 $a = 123.456E-_12; print "$a\n";
535 $a = 123.456E-1_2; print "$a\n";
536 $a = 123.456E-12_; print "$a\n";
537 $a = 1__23; print "$a\n";
538 $a = 12.3__4; print "$a\n";
539 $a = 12.34e1__2; printf("%.0f\n", $a);
540 EXPECT
541 OPTIONS regex
542 Misplaced _ in number at - line 6.
543 Misplaced _ in number at - line 11.
544 Misplaced _ in number at - line 16.
545 Misplaced _ in number at - line 17.
546 Misplaced _ in number at - line 20.
547 Misplaced _ in number at - line 21.
548 Misplaced _ in number at - line 24.
549 Misplaced _ in number at - line 25.
550 Misplaced _ in number at - line 28.
551 Misplaced _ in number at - line 29.
552 Misplaced _ in number at - line 31.
553 Misplaced _ in number at - line 32.
554 Misplaced _ in number at - line 33.
555 Misplaced _ in number at - line 35.
556 Misplaced _ in number at - line 36.
557 Misplaced _ in number at - line 37.
558 Misplaced _ in number at - line 39.
559 Misplaced _ in number at - line 40.
560 Misplaced _ in number at - line 41.
561 Misplaced _ in number at - line 42.
562 _123
563 123
564 123
565 123
566 123
567 _123
568 123
569 123
570 123
571 -123
572 -_123
573 -123
574 -123
575 -123
576 123.456
577 123.456
578 123.456
579 123.456
580 123.456
581 123.456
582 123.456
583 123.456
584 -123.456
585 -123.456
586 -123.456
587 -123.456
588 123456000000000
589 123456000000000
590 123456000000000
591 123456000000000
592 123456000000000
593 123456000000000
594 123456000000000
595 1.23456e-0?10
596 1.23456e-0?10
597 1.23456e-0?10
598 1.23456e-0?10
599 123
600 12.34
601 12340000000000
602 _123
603 123
604 123
605 123
606 123
607 _123
608 123
609 123
610 123
611 -123
612 -_123
613 -123
614 -123
615 -123
616 123.456
617 123.456
618 123.456
619 123.456
620 123.456
621 123.456
622 123.456
623 123.456
624 -123.456
625 -123.456
626 -123.456
627 -123.456
628 123456000000000
629 123456000000000
630 123456000000000
631 123456000000000
632 123456000000000
633 123456000000000
634 123456000000000
635 1.23456e-0?10
636 1.23456e-0?10
637 1.23456e-0?10
638 1.23456e-0?10
639 123
640 12.34
641 12340000000000
642 ########
643 # toke.c
644 use warnings 'bareword' ;
645 #line 25 "bar"
646 $a = FRED:: ;
647 no warnings 'bareword' ;
648 #line 25 "bar"
649 $a = FRED:: ;
650 EXPECT
651 Bareword "FRED::" refers to nonexistent package at bar line 25.
652 ########
653 # toke.c
654 use utf8;
655 use open qw( :utf8 :std );
656 use warnings 'bareword' ;
657 #line 25 "bar"
658 $a = FRÈD:: ;
659 no warnings 'bareword' ;
660 #line 25 "bar"
661 $a = FRÈD:: ;
662 EXPECT
663 Bareword "FRÈD::" refers to nonexistent package at bar line 25.
664 ########
665 # toke.c
666 use utf8;
667 use open qw( :utf8 :std );
668 use warnings 'bareword' ;
669 #line 25 "bar"
670 $a = ϞϞϞ:: ;
671 no warnings 'bareword' ;
672 #line 25 "bar"
673 $a = ϞϞϞ:: ;
674 EXPECT
675 Bareword "ϞϞϞ::" refers to nonexistent package at bar line 25.
676 ########
677 # toke.c
678 use warnings 'ambiguous' ;
679 sub time {}
680 my $a = time() ;
681 no warnings 'ambiguous' ;
682 my $b = time() ;
683 EXPECT
684 Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4.
685 ########
686 # toke.c
687 use warnings ;
688 eval <<'EOE';
689 #  line 30 "foo"
690 warn "yelp";
691 {
692   $_ = " \x{123} " ;
693 }
694 EOE
695 EXPECT
696 yelp at foo line 30.
697 ########
698 # toke.c
699 my $a = rand + 4 ;
700 $a = rand *^H ;
701 $a = rand $^H ;
702 EXPECT
703 Warning: Use of "rand" without parentheses is ambiguous at - line 2.
704 ########
705 # toke.c
706 $^W = 0 ;
707 my $a = rand + 4 ;
708 {
709     no warnings 'ambiguous' ;
710     $a = rand + 4 ;
711     use warnings 'ambiguous' ;
712     $a = rand + 4 ;
713 }
714 $a = rand + 4 ;
715 EXPECT
716 Warning: Use of "rand" without parentheses is ambiguous at - line 3.
717 Warning: Use of "rand" without parentheses is ambiguous at - line 8.
718 Warning: Use of "rand" without parentheses is ambiguous at - line 10.
719 ########
720 # [perl #97110]
721 sub myrand(;$) { }
722 sub whatever($) { }
723 my $a = myrand + 4 ;
724 my $b = whatever + 4 ;
725 EXPECT
726 Warning: Use of "myrand" without parentheses is ambiguous at - line 4.
727 ########
728 # toke.c
729 use warnings "ambiguous";
730 print for keys %+; # should not warn
731 EXPECT
732 ########
733 # toke.c
734 sub fred {};
735 -fred ;
736 sub hank : lvalue {$_}
737 --hank; # This should *not* warn [perl #77240]
738 EXPECT
739 Ambiguous use of -fred resolved as -&fred() at - line 3.
740 ########
741 # toke.c
742 $^W = 0 ;
743 sub fred {} ;
744 -fred ;
745 {
746     no warnings 'ambiguous' ;
747     -fred ;
748     use warnings 'ambiguous' ;
749     -fred ;
750 }
751 -fred ;
752 EXPECT
753 Ambiguous use of -fred resolved as -&fred() at - line 4.
754 Ambiguous use of -fred resolved as -&fred() at - line 9.
755 Ambiguous use of -fred resolved as -&fred() at - line 11.
756 ########
757 # toke.c
758 use utf8;
759 use open qw( :utf8 :std );
760 sub frèd {};
761 -frèd ;
762 EXPECT
763 Ambiguous use of -frèd resolved as -&frèd() at - line 5.
764 ########
765 # toke.c
766 $^W = 0 ;
767 use utf8;
768 use open qw( :utf8 :std );
769 sub frèd {} ;
770 -frèd ;
771 {
772     no warnings 'ambiguous' ;
773     -frèd ;
774     use warnings 'ambiguous' ;
775     -frèd ;
776 }
777 -frèd ;
778 EXPECT
779 Ambiguous use of -frèd resolved as -&frèd() at - line 6.
780 Ambiguous use of -frèd resolved as -&frèd() at - line 11.
781 Ambiguous use of -frèd resolved as -&frèd() at - line 13.
782 ########
783 # toke.c
784 use utf8;
785 use open qw( :utf8 :std );
786 sub ᒍᒘᒊ {};
787 -ᒍᒘᒊ ;
788 EXPECT
789 Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 5.
790 ########
791 # toke.c
792 $^W = 0 ;
793 use utf8;
794 use open qw( :utf8 :std );
795 sub ᒍᒘᒊ {} ;
796 -ᒍᒘᒊ ;
797 {
798     no warnings 'ambiguous' ;
799     -ᒍᒘᒊ ;
800     use warnings 'ambiguous' ;
801     -ᒍᒘᒊ ;
802 }
803 -ᒍᒘᒊ ;
804 EXPECT
805 Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 6.
806 Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 11.
807 Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 13.
808 ########
809 # toke.c
810 open FOO || time;
811 open local *FOO; # should be ok
812 EXPECT
813 Precedence problem: open FOO should be open(FOO) at - line 2.
814 ########
815 # toke.c
816 use utf8;
817 use open qw( :utf8 :std );
818 open FÒÒ || time;
819 EXPECT
820 Precedence problem: open FÒÒ should be open(FÒÒ) at - line 4.
821 ########
822 # toke.c
823 use utf8;
824 use open qw( :utf8 :std );
825 open ᒍOO || time;
826 EXPECT
827 Precedence problem: open ᒍOO should be open(ᒍOO) at - line 4.
828 ########
829 # toke.c (and [perl #16184])
830 open FOO => "<&0"; close FOO;
831 EXPECT
832 ########
833 # toke.c
834 $^W = 0 ;
835 open FOO || time;
836 {
837     no warnings 'precedence' ;
838     open FOO || time;
839     use warnings 'precedence' ;
840     open FOO || time;
841 }
842 open FOO || time;
843 open Foo::BAR; # this should not warn
844 EXPECT
845 Precedence problem: open FOO should be open(FOO) at - line 3.
846 Precedence problem: open FOO should be open(FOO) at - line 8.
847 Precedence problem: open FOO should be open(FOO) at - line 10.
848 ########
849 # toke.c
850 $^W = 0 ;
851 use utf8;
852 use open qw( :utf8 :std );
853 open FÒÒ || time;
854 {
855     no warnings 'precedence' ;
856     open FÒÒ || time;
857     use warnings 'precedence' ;
858     open FÒÒ || time;
859 }
860 open FÒÒ || time;
861 EXPECT
862 Precedence problem: open FÒÒ should be open(FÒÒ) at - line 5.
863 Precedence problem: open FÒÒ should be open(FÒÒ) at - line 10.
864 Precedence problem: open FÒÒ should be open(FÒÒ) at - line 12.
865 ########
866 # toke.c
867 use utf8;
868 use open qw( :utf8 :std );
869 $^W = 0 ;
870 open ᒍÒÒ || time;
871 {
872     no warnings 'precedence' ;
873     open ᒍÒÒ || time;
874     use warnings 'precedence' ;
875     open ᒍÒÒ || time;
876 }
877 open ᒍÒÒ || time;
878 EXPECT
879 Precedence problem: open ᒍÒÒ should be open(ᒍÒÒ) at - line 5.
880 Precedence problem: open ᒍÒÒ should be open(ᒍÒÒ) at - line 10.
881 Precedence problem: open ᒍÒÒ should be open(ᒍÒÒ) at - line 12.
882 ########
883 # toke.c
884 $^W = 0 ;
885 *foo *foo ;
886 {
887     no warnings 'ambiguous' ;
888     *foo *foo ;
889     use warnings 'ambiguous' ;
890     *foo *foo ;
891 }
892 *foo *foo ;
893 # These should not warn [perl #117535]:
894 foo**foo ;
895 no warnings 'deprecated';
896 sort $*foo ;
897 sort $ *foo ;
898 EXPECT
899 Operator or semicolon missing before *foo at - line 3.
900 Ambiguous use of * resolved as operator * at - line 3.
901 Operator or semicolon missing before *foo at - line 8.
902 Ambiguous use of * resolved as operator * at - line 8.
903 Operator or semicolon missing before *foo at - line 10.
904 Ambiguous use of * resolved as operator * at - line 10.
905 ########
906 # toke.c
907 $^W = 0 ;
908 %foo %foo ;
909 {
910     no warnings 'ambiguous' ;
911     %foo %foo ;
912     use warnings 'ambiguous' ;
913     %foo %foo ;
914 }
915 %foo %foo ;
916 # This should not produce ambiguity warnings [perl #117535]:
917 sort $%foo ;
918 sort $ %foo ;
919 EXPECT
920 Operator or semicolon missing before %foo at - line 3.
921 Ambiguous use of % resolved as operator % at - line 3.
922 Operator or semicolon missing before %foo at - line 8.
923 Ambiguous use of % resolved as operator % at - line 8.
924 Operator or semicolon missing before %foo at - line 10.
925 Ambiguous use of % resolved as operator % at - line 10.
926 Bareword found where operator expected at - line 12, near "$%foo"
927         (Missing operator before foo?)
928 Bareword found where operator expected at - line 13, near "$ %foo"
929         (Missing operator before foo?)
930 Illegal modulus zero at - line 3.
931 ########
932 # toke.c
933 $^W = 0 ;
934 &foo &foo ;
935 {
936     no warnings 'ambiguous' ;
937     &foo &foo ;
938     use warnings 'ambiguous' ;
939     &foo &foo ;
940 }
941 &foo &foo ;
942 # These should not warn produce ambiguity warnings [perl #76910]:
943 foo&&foo ;
944 sort $&foo ;
945 sort $ &foo ;
946 EXPECT
947 Operator or semicolon missing before &foo at - line 3.
948 Ambiguous use of & resolved as operator & at - line 3.
949 Operator or semicolon missing before &foo at - line 8.
950 Ambiguous use of & resolved as operator & at - line 8.
951 Operator or semicolon missing before &foo at - line 10.
952 Ambiguous use of & resolved as operator & at - line 10.
953 Bareword found where operator expected at - line 13, near "$&foo"
954         (Missing operator before foo?)
955 Bareword found where operator expected at - line 14, near "$ &foo"
956         (Missing operator before foo?)
957 Undefined subroutine &main::foo called at - line 3.
958 ########
959 # toke.c
960 use utf8;
961 use open qw( :utf8 :std );
962 $^W = 0 ;
963 *foo *foo ;
964 {
965     no warnings 'ambiguous' ;
966     *foo *foo ;
967     use warnings 'ambiguous' ;
968     *foo *foo ;
969 }
970 *foo *foo ;
971 EXPECT
972 Operator or semicolon missing before *foo at - line 5.
973 Ambiguous use of * resolved as operator * at - line 5.
974 Operator or semicolon missing before *foo at - line 10.
975 Ambiguous use of * resolved as operator * at - line 10.
976 Operator or semicolon missing before *foo at - line 12.
977 Ambiguous use of * resolved as operator * at - line 12.
978 ########
979 # toke.c
980 use warnings 'misc' ;
981 my $a = "\m" ;
982 no warnings 'misc' ;
983 $a = "\m" ;
984 EXPECT
985 Unrecognized escape \m passed through at - line 3.
986 ########
987 # toke.c
988 use warnings 'misc' ;
989 my $a = "abcd\E" ;
990 no warnings 'misc' ;
991 $a = "abcd\E" ;
992 EXPECT
993 Useless use of \E at - line 3.
994 ########
995 # toke.c
996 use warnings 'portable' ;
997 my $a =  0b011111111111111111111111111111110 ;
998    $a =  0b011111111111111111111111111111111 ;
999    $a =  0b111111111111111111111111111111111 ;
1000    $a =  0x0fffffffe ;
1001    $a =  0x0ffffffff ;
1002    $a =  0x1ffffffff ;
1003    $a =  0037777777776 ;
1004    $a =  0037777777777 ;
1005    $a =  0047777777777 ;
1006 no warnings 'portable' ;
1007    $a =  0b011111111111111111111111111111110 ;
1008    $a =  0b011111111111111111111111111111111 ;
1009    $a =  0b111111111111111111111111111111111 ;
1010    $a =  0x0fffffffe ;
1011    $a =  0x0ffffffff ;
1012    $a =  0x1ffffffff ;
1013    $a =  0037777777776 ;
1014    $a =  0037777777777 ;
1015    $a =  0047777777777 ;
1016 EXPECT
1017 Binary number > 0b11111111111111111111111111111111 non-portable at - line 5.
1018 Hexadecimal number > 0xffffffff non-portable at - line 8.
1019 Octal number > 037777777777 non-portable at - line 11.
1020 ########
1021 # toke.c
1022 use warnings 'overflow' ;
1023 my $a =  0b011111111111111111111111111111110 ;
1024    $a =  0b011111111111111111111111111111111 ;
1025    $a =  0b10000000000000000000000000000000000000000000000000000000000000000 ;
1026    $a =  0x0fffffffe ;
1027    $a =  0x0ffffffff ;
1028    $a =  0x10000000000000000 ;
1029    $a =  0037777777776 ;
1030    $a =  0037777777777 ;
1031    $a =  002000000000000000000000;
1032 no warnings 'overflow' ;
1033    $a =  0b011111111111111111111111111111110 ;
1034    $a =  0b011111111111111111111111111111111 ;
1035    $a =  0b10000000000000000000000000000000000000000000000000000000000000000 ;
1036    $a =  0x0fffffffe ;
1037    $a =  0x0ffffffff ;
1038    $a =  0x10000000000000000 ;
1039    $a =  0037777777776 ;
1040    $a =  0037777777777 ;
1041    $a =  002000000000000000000000;
1042 EXPECT
1043 Integer overflow in binary number at - line 5.
1044 Integer overflow in hexadecimal number at - line 8.
1045 Integer overflow in octal number at - line 11.
1046 ########
1047 # toke.c
1048 BEGIN { $^C = 1; }
1049 use warnings 'misc';
1050 dump;
1051 CORE::dump;
1052 EXPECT
1053 dump() better written as CORE::dump() at - line 4.
1054 - syntax OK
1055 ########
1056 # toke.c
1057 use warnings 'misc';
1058 use subs qw/dump/;
1059 sub dump { print "no warning for overridden dump\n"; }
1060 dump;
1061 EXPECT
1062 no warning for overridden dump
1063 ########
1064 # toke.c
1065 use warnings 'ambiguous';
1066 "@mjd_previously_unused_array";        
1067 no warnings 'ambiguous';
1068 "@mjd_previously_unused_array2";        
1069 EXPECT
1070 Possible unintended interpolation of @mjd_previously_unused_array in string at - line 3.
1071 ########
1072 # toke.c
1073 use utf8;
1074 use open qw( :utf8 :std );
1075 use warnings 'ambiguous';
1076 "@mjd_previously_unused_àrray";        
1077 no warnings 'ambiguous';
1078 "@mjd_previously_unused_àrray2";        
1079 EXPECT
1080 Possible unintended interpolation of @mjd_previously_unused_àrray in string at - line 5.
1081 ########
1082 # toke.c
1083 use utf8;
1084 use open qw( :utf8 :std );
1085 use warnings 'ambiguous';
1086 "@mjd_previously_unused_ぁrrぁy";        
1087 no warnings 'ambiguous';
1088 "@mjd_previously_unused_ぁrrぁy2";        
1089 EXPECT
1090 Possible unintended interpolation of @mjd_previously_unused_ぁrrぁy in string at - line 5.
1091 ########
1092 # toke.c
1093 # 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com
1094 use warnings 'regexp';
1095 "foo" =~ /foo/c;
1096 "foo" =~ /foo/cg;
1097 no warnings 'regexp';
1098 "foo" =~ /foo/c;
1099 "foo" =~ /foo/cg;
1100 EXPECT
1101 Use of /c modifier is meaningless without /g at - line 4.
1102 ########
1103 # toke.c
1104 # 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com
1105 use warnings 'regexp';
1106 $_ = "ab" ; 
1107 s/ab/ab/c;
1108 s/ab/ab/cg;
1109 no warnings 'regexp';
1110 s/ab/ab/c;
1111 s/ab/ab/cg;
1112 EXPECT
1113 Use of /c modifier is meaningless in s/// at - line 5.
1114 Use of /c modifier is meaningless in s/// at - line 6.
1115 ########
1116 -wa
1117 # toke.c
1118 # 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings
1119 print "@F\n";
1120 EXPECT
1121
1122 ########
1123 -w
1124 # toke.c
1125 # 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings
1126 print "@F\n";
1127 EXPECT
1128 Possible unintended interpolation of @F in string at - line 4.
1129 Name "main::F" used only once: possible typo at - line 4.
1130 ########
1131 -wa
1132 # toke.c
1133 # 20020414 mjd-perl-patch+@plover.com
1134 EXPECT
1135
1136 ########
1137 # toke.c
1138 # 20020414 mjd-perl-patch+@plover.com
1139 # In 5.7.3, this emitted "Possible unintended interpolation" warnings
1140 use warnings 'ambiguous';
1141 $s = "(@-)(@+)";
1142 EXPECT
1143
1144 ########
1145 # toke.c
1146 # mandatory warning
1147 eval q/if ($a) { } elseif ($b) { }/;
1148 no warnings "syntax";
1149 eval q/if ($a) { } elseif ($b) { }/;
1150 EXPECT
1151 elseif should be elsif at (eval 1) line 1.
1152 ########
1153 # toke.c
1154 # mandatory warning
1155 eval q/5 6/;
1156 no warnings "syntax";
1157 eval q/5 6/;
1158 EXPECT
1159 Number found where operator expected at (eval 1) line 1, near "5 6"
1160         (Missing operator before  6?)
1161 ########
1162 # toke.c
1163 use warnings "syntax"; no warnings "deprecated";
1164 $_ = $a = 1;
1165 $a !=~  /1/;
1166 $a !=~ m#1#;
1167 $a !=~/1/;
1168 $a !=~ ?/?;
1169 $a !=~ y/1//;
1170 $a !=~ tr/1//;
1171 $a !=~ s/1//;
1172 $a != ~/1/;
1173 no warnings "syntax";
1174 $a !=~  /1/;
1175 $a !=~ m#1#;
1176 $a !=~/1/;
1177 $a !=~ ?/?;
1178 $a !=~ y/1//;
1179 $a !=~ tr/1//;
1180 $a !=~ s/1//;
1181 EXPECT
1182 !=~ should be !~ at - line 4.
1183 !=~ should be !~ at - line 5.
1184 !=~ should be !~ at - line 6.
1185 !=~ should be !~ at - line 7.
1186 !=~ should be !~ at - line 8.
1187 !=~ should be !~ at - line 9.
1188 !=~ should be !~ at - line 10.
1189 ########
1190 # toke.c
1191 our $foo :unique;
1192 sub pam :locked;
1193 sub glipp :locked {
1194 }
1195 sub whack_eth ($) : locked {
1196 }
1197 no warnings 'deprecated';
1198 our $bar :unique;
1199 sub zapeth :locked;
1200 sub ker_plop :locked {
1201 }
1202 sub swa_a_p ($) : locked {
1203 }
1204 EXPECT
1205 Use of :unique is deprecated at - line 2.
1206 Use of :locked is deprecated at - line 3.
1207 Use of :locked is deprecated at - line 4.
1208 Use of :locked is deprecated at - line 6.
1209 ########
1210 # toke.c
1211 use warnings "syntax"; use feature 'lexical_subs';
1212 sub proto_after_array(@$);
1213 sub proto_after_arref(\@$);
1214 sub proto_after_arref2(\[@$]);
1215 sub proto_after_arref3(\[@$]_);
1216 sub proto_after_hash(%$);
1217 sub proto_after_hashref(\%$);
1218 sub proto_after_hashref2(\[%$]);
1219 sub underscore_last_pos($_);
1220 sub underscore2($_;$);
1221 sub underscore_fail($_$);
1222 sub underscore_after_at(@_);
1223 our sub hour (@$);
1224 my sub migh (@$);
1225 use feature 'state';
1226 state sub estate (@$);
1227 package other;
1228 sub hour (@$);
1229 sub migh (@$);
1230 sub estate (@$);
1231 no warnings "syntax";
1232 sub proto_after_array(@$);
1233 sub proto_after_hash(%$);
1234 sub underscore_fail($_$);
1235 EXPECT
1236 Prototype after '@' for main::proto_after_array : @$ at - line 3.
1237 Prototype after '%' for main::proto_after_hash : %$ at - line 7.
1238 Illegal character after '_' in prototype for main::underscore_fail : $_$ at - line 12.
1239 Prototype after '@' for main::underscore_after_at : @_ at - line 13.
1240 The lexical_subs feature is experimental at - line 14.
1241 Prototype after '@' for hour : @$ at - line 14.
1242 The lexical_subs feature is experimental at - line 15.
1243 Prototype after '@' for migh : @$ at - line 15.
1244 The lexical_subs feature is experimental at - line 17.
1245 Prototype after '@' for estate : @$ at - line 17.
1246 Prototype after '@' for hour : @$ at - line 19.
1247 Prototype after '@' for migh : @$ at - line 20.
1248 Prototype after '@' for estate : @$ at - line 21.
1249 ########
1250 # toke.c
1251 use warnings "ambiguous";
1252 "foo\nn" =~ /^foo$\n/;
1253 "foo\nn" =~ /^foo${\}n/;
1254 my $foo = qr/^foo$\n/;
1255 my $bar = qr/^foo${\}n/;
1256 no warnings "ambiguous";
1257 "foo\nn" =~ /^foo$\n/;
1258 "foo\nn" =~ /^foo${\}n/;
1259 my $foo = qr/^foo$\n/;
1260 my $bar = qr/^foo${\}n/;
1261 EXPECT
1262 Possible unintended interpolation of $\ in regex at - line 3.
1263 Possible unintended interpolation of $\ in regex at - line 5.
1264 ########
1265 # toke.c
1266 use warnings 'syntax' ;
1267 my $a = "\o";
1268 my $a = "\o{";
1269 my $a = "\o{}";
1270 no warnings 'syntax' ;
1271 my $a = "\o";
1272 my $a = "\o{";
1273 my $a = "\o{}";
1274 EXPECT
1275 Missing braces on \o{} at - line 3, within string
1276 Missing right brace on \o{ at - line 4, within string
1277 Number with no digits at - line 5, within string
1278 BEGIN not safe after errors--compilation aborted at - line 6.
1279 ########
1280 # toke.c
1281 use warnings 'digit' ;
1282 my $a = "\o{1238456}";
1283 no warnings 'digit' ;
1284 my $a = "\o{1238456}";
1285 EXPECT
1286 Non-octal character '8'.  Resolved as "\o{123}" at - line 3.
1287 ########
1288 # toke.c
1289 use warnings;
1290 my $a = "foo";
1291 print $a =~ ?f? ? "yes\n" : "no\n" foreach 0..2;
1292 EXPECT
1293 Use of ?PATTERN? without explicit operator is deprecated at - line 4.
1294 yes
1295 no
1296 no
1297 ########
1298 # toke.c
1299 use warnings;
1300 my $a = "\c{ack}";
1301 $a = "\c,";
1302 $a = "\c`";
1303 no warnings 'syntax';
1304 $a = "\c{ack}";
1305 $a = "\c,";
1306 $a = "\c`";
1307 no warnings 'deprecated';
1308 EXPECT
1309 "\c{" is deprecated and is more clearly written as ";" at - line 3.
1310 "\c," is more clearly written simply as "l" at - line 4.
1311 "\c`" is more clearly written simply as "\ " at - line 5.
1312 "\c{" is deprecated and is more clearly written as ";" at - line 7.
1313 ########
1314 # toke.c
1315 use warnings 'syntax' ;
1316 my $a = qr/foo/du;
1317 $a = qr/foo/lai;
1318 $a = qr/foo/lil;
1319 $a = qr/foo/aia;
1320 $a = qr/foo/aaia;
1321 no warnings 'syntax' ;
1322 my $a = qr/foo/du;
1323 EXPECT
1324 Regexp modifiers "/d" and "/u" are mutually exclusive at - line 3, near "= "
1325 Regexp modifiers "/l" and "/a" are mutually exclusive at - line 4, near "= "
1326 Regexp modifier "/l" may not appear twice at - line 5, near "= "
1327 Regexp modifier "/a" may appear a maximum of twice at - line 7, near "= "
1328 BEGIN not safe after errors--compilation aborted at - line 8.
1329 ########
1330 # toke.c
1331 # [perl #4362]
1332 eval "print q\xabfoo";
1333 print "ok\n" if
1334     $@ =~ /Can't find string terminator "\xab" anywhere before EOF/;
1335 EXPECT
1336 ok
1337 ########
1338 # toke.c
1339 use utf8;
1340 use open qw( :utf8 :std );
1341 use warnings 'ambiguous' ;
1342 sub frèd {}
1343 $a = ${frèd} ;
1344 no warnings 'ambiguous' ;
1345 $a = ${frèd} ;
1346 EXPECT
1347 Ambiguous use of ${frèd} resolved to $frèd at - line 6.
1348 ########
1349 # toke.c
1350 use utf8;
1351 use open qw( :utf8 :std );
1352 use warnings 'ambiguous' ;
1353 sub f렏 {}
1354 $a = ${f렏} ;
1355 no warnings 'ambiguous' ;
1356 $a = ${f렏} ;
1357 EXPECT
1358 Ambiguous use of ${f렏} resolved to $f렏 at - line 6.
1359 ########
1360 # toke.c
1361 use utf8;
1362 use open qw( :utf8 :std );
1363 use warnings;
1364 CORE::렏;
1365 EXPECT
1366 CORE::렏 is not a keyword at - line 5.
1367 ########
1368 # toke.c
1369 # [perl #16249]
1370 print '';
1371 eval this_method_is_fake ();
1372 EXPECT
1373 Undefined subroutine &main::this_method_is_fake called at - line 4.
1374 ########
1375 # toke.c
1376 # [perl #107002] Erroneous ambiguity warnings
1377 sub { # do not actually call require
1378   require a::b . 1; # These used to produce erroneous
1379   require a::b + 1; # ambiguity warnings.
1380 }
1381 EXPECT
1382 ########
1383 # toke.c
1384 # [perl #113094], [perl #119101]
1385 print "aa" =~ m{^a\{1,2\}$}, "\n";
1386 print "aa" =~ m{^a\x\{61\}$}, "\n";
1387 print "a\\x{6F}" =~ m{^a\\x\{6F\}$}, "\n";
1388 print "a\\o" =~ m{^a\\\x\{6F\}$}, "\n";
1389 print "a\\\\x{6F}" =~ m{^a\\\\x\{6F\}$}, "\n";
1390 print "a\\\\o"     =~ m{^a\\\\\x\{6F\}$}, "\n";
1391 print "aa" =~ m{^a{1,2}$}, "\n";
1392 print "aq" =~ m[^a\[a-z\]$], "\n";
1393 print "aq" =~ m(^a\(q\)$), "\n";
1394 no warnings 'deprecated';
1395 print "aa" =~ m{^a\{1,2\}$}, "\n";
1396 print "aa" =~ m{^a\x\{61\}$}, "\n";
1397 print "a\\x{6F}" =~ m{^a\\x\{6F\}$}, "\n";
1398 print "a\\o" =~ m{^a\\\x\{6f\}$}, "\n";
1399 print "aq" =~ m[^a\[a-z\]$], "\n";
1400 print "aq" =~ m(^a\(q\)$), "\n";
1401 EXPECT
1402 Useless use of '\'; doesn't escape metacharacter '{' at - line 3.
1403 Useless use of '\'; doesn't escape metacharacter '{' at - line 4.
1404 Useless use of '\'; doesn't escape metacharacter '{' at - line 6.
1405 Useless use of '\'; doesn't escape metacharacter '{' at - line 8.
1406 Useless use of '\'; doesn't escape metacharacter '[' at - line 10.
1407 Useless use of '\'; doesn't escape metacharacter '(' at - line 11.
1408 1
1409 1
1410 1
1411 1
1412 1
1413 1
1414 1
1415 1
1416 q
1417 1
1418 1
1419 1
1420 1
1421 1
1422 q