Cosmetic OS/2-related patches
[p5sagit/p5-mst-13.2.git] / t / pragma / warn / op
CommitLineData
599cee73 1 op.c AOK
2
3 "my" variable %s masks earlier declaration in same scope
4 my $x;
5 my $x ;
6
7 Variable "%s" may be unavailable
8 sub x {
9 my $x;
10 sub y {
11 $x
12 }
13 }
14
15 Variable "%s" will not stay shared
16 sub x {
17 my $x;
18 sub y {
19 sub { $x }
20 }
21 }
22
23 Found = in conditional, should be ==
24 1 if $a = 1 ;
25
26 Use of implicit split to @_ is deprecated
27 split ;
28
29 Use of implicit split to @_ is deprecated
30 $a = split ;
31
32 Useless use of time in void context
33 Useless use of a variable in void context
34 Useless use of a constant in void context
35 time ;
36 $a ;
37 "abc"
38
39 Applying %s to %s will act on scalar(%s)
40 my $a ; my @a = () ; my %a = () ; my $b = \@a ; my $c = \%a ;
41 @a =~ /abc/ ;
42 @a =~ s/a/b/ ;
43 @a =~ tr/a/b/ ;
44 @$b =~ /abc/ ;
45 @$b =~ s/a/b/ ;
46 @$b =~ tr/a/b/ ;
47 %a =~ /abc/ ;
48 %a =~ s/a/b/ ;
49 %a =~ tr/a/b/ ;
50 %$c =~ /abc/ ;
51 %$c =~ s/a/b/ ;
52 %$c =~ tr/a/b/ ;
53
54
df5b6949 55 Parentheses missing around "my" list at -e line 1.
599cee73 56 my $a, $b = (1,2);
57
df5b6949 58 Parentheses missing around "local" list at -e line 1.
599cee73 59 local $a, $b = (1,2);
60
61 Probable precedence problem on logical or at -e line 1.
62 use warning 'syntax'; my $x = print(ABC || 1);
63
64 Value of %s may be \"0\"; use \"defined\"
65 $x = 1 if $x = <FH> ;
66 $x = 1 while $x = <FH> ;
67
68 Subroutine fred redefined at -e line 1.
69 sub fred{1;} sub fred{1;}
70
71 Constant subroutine %s redefined
72 sub fred() {1;} sub fred() {1;}
73
74 Format FRED redefined at /tmp/x line 5.
75 format FRED =
76 .
77 format FRED =
78 .
79
80 Array @%s missing the @ in argument %d of %s()
81 push fred ;
82
83 Hash %%%s missing the %% in argument %d of %s()
84 keys joe ;
85
86 Statement unlikely to be reached
87 (Maybe you meant system() when you said exec()?
88 exec "true" ; my $a
89
90
91__END__
92# op.c
93use warning 'unsafe' ;
94my $x ;
95my $x ;
96EXPECT
97"my" variable $x masks earlier declaration in same scope at - line 4.
98########
99# op.c
100use warning 'unsafe' ;
101sub x {
102 my $x;
103 sub y {
104 $x
105 }
106 }
107EXPECT
108Variable "$x" will not stay shared at - line 7.
109########
110# op.c
111use warning 'unsafe' ;
112sub x {
113 my $x;
114 sub y {
115 sub { $x }
116 }
117 }
118EXPECT
119Variable "$x" may be unavailable at - line 6.
120########
121# op.c
122use warning 'syntax' ;
1231 if $a = 1 ;
124EXPECT
125Found = in conditional, should be == at - line 3.
126########
127# op.c
128use warning 'deprecated' ;
129split ;
130EXPECT
131Use of implicit split to @_ is deprecated at - line 3.
132########
133# op.c
134use warning 'deprecated' ;
135$a = split ;
136EXPECT
137Use of implicit split to @_ is deprecated at - line 3.
138########
139# op.c
140use warning 'void' ; close STDIN ;
1411 x 3 ; # OP_REPEAT
142 # OP_GVSV
143wantarray ; # OP_WANTARRAY
144 # OP_GV
145 # OP_PADSV
146 # OP_PADAV
147 # OP_PADHV
148 # OP_PADANY
149 # OP_AV2ARYLEN
150ref ; # OP_REF
151\@a ; # OP_REFGEN
152\$a ; # OP_SREFGEN
153defined $a ; # OP_DEFINED
154hex $a ; # OP_HEX
155oct $a ; # OP_OCT
156length $a ; # OP_LENGTH
157substr $a,1 ; # OP_SUBSTR
158vec $a,1,2 ; # OP_VEC
159index $a,1,2 ; # OP_INDEX
160rindex $a,1,2 ; # OP_RINDEX
161sprintf $a ; # OP_SPRINTF
162$a[0] ; # OP_AELEM
163 # OP_AELEMFAST
164@a[0] ; # OP_ASLICE
165#values %a ; # OP_VALUES
166#keys %a ; # OP_KEYS
167$a{0} ; # OP_HELEM
168@a{0} ; # OP_HSLICE
169unpack "a", "a" ; # OP_UNPACK
170pack $a,"" ; # OP_PACK
171join "" ; # OP_JOIN
172(@a)[0,1] ; # OP_LSLICE
173 # OP_ANONLIST
174 # OP_ANONHASH
175sort(1,2) ; # OP_SORT
176reverse(1,2) ; # OP_REVERSE
177 # OP_RANGE
178 # OP_FLIP
179(1 ..2) ; # OP_FLOP
180caller ; # OP_CALLER
181fileno STDIN ; # OP_FILENO
182eof STDIN ; # OP_EOF
183tell STDIN ; # OP_TELL
184readlink 1; # OP_READLINK
185time ; # OP_TIME
186localtime ; # OP_LOCALTIME
187gmtime ; # OP_GMTIME
dfe13c55 188eval { getgrnam 1 }; # OP_GGRNAM
189eval { getgrgid 1 }; # OP_GGRGID
190eval { getpwnam 1 }; # OP_GPWNAM
191eval { getpwuid 1 }; # OP_GPWUID
599cee73 192EXPECT
193Useless use of repeat in void context at - line 3.
194Useless use of wantarray in void context at - line 5.
195Useless use of reference-type operator in void context at - line 12.
196Useless use of reference constructor in void context at - line 13.
197Useless use of scalar ref constructor in void context at - line 14.
198Useless use of defined operator in void context at - line 15.
199Useless use of hex in void context at - line 16.
200Useless use of oct in void context at - line 17.
201Useless use of length in void context at - line 18.
202Useless use of substr in void context at - line 19.
203Useless use of vec in void context at - line 20.
204Useless use of index in void context at - line 21.
205Useless use of rindex in void context at - line 22.
206Useless use of sprintf in void context at - line 23.
207Useless use of array element in void context at - line 24.
208Useless use of array slice in void context at - line 26.
209Useless use of hash elem in void context at - line 29.
210Useless use of hash slice in void context at - line 30.
211Useless use of unpack in void context at - line 31.
212Useless use of pack in void context at - line 32.
213Useless use of join in void context at - line 33.
214Useless use of list slice in void context at - line 34.
215Useless use of sort in void context at - line 37.
216Useless use of reverse in void context at - line 38.
217Useless use of range (or flop) in void context at - line 41.
218Useless use of caller in void context at - line 42.
219Useless use of fileno in void context at - line 43.
220Useless use of eof in void context at - line 44.
221Useless use of tell in void context at - line 45.
222Useless use of readlink in void context at - line 46.
223Useless use of time in void context at - line 47.
224Useless use of localtime in void context at - line 48.
225Useless use of gmtime in void context at - line 49.
226Useless use of getgrnam in void context at - line 50.
227Useless use of getgrgid in void context at - line 51.
228Useless use of getpwnam in void context at - line 52.
229Useless use of getpwuid in void context at - line 53.
230########
231# op.c
232use warning 'void' ;
68c73484 233for (@{[0]}) { "$_" } # check warning isn't duplicated
234EXPECT
235Useless use of string in void context at - line 3.
236########
237# op.c
238use warning 'void' ;
599cee73 239use Config ;
240BEGIN {
241 if ( ! $Config{d_telldir}) {
242 print <<EOM ;
243SKIPPED
244# telldir not present
245EOM
246 exit
247 }
248}
249telldir 1 ; # OP_TELLDIR
250EXPECT
251Useless use of telldir in void context at - line 13.
252########
253# op.c
254use warning 'void' ;
255use Config ;
256BEGIN {
257 if ( ! $Config{d_getppid}) {
258 print <<EOM ;
259SKIPPED
260# getppid not present
261EOM
262 exit
263 }
264}
265getppid ; # OP_GETPPID
266EXPECT
267Useless use of getppid in void context at - line 13.
268########
269# op.c
270use warning 'void' ;
271use Config ;
272BEGIN {
273 if ( ! $Config{d_getpgrp}) {
274 print <<EOM ;
275SKIPPED
276# getpgrp not present
277EOM
278 exit
279 }
280}
281getpgrp ; # OP_GETPGRP
282EXPECT
283Useless use of getpgrp in void context at - line 13.
284########
285# op.c
286use warning 'void' ;
287use Config ;
288BEGIN {
289 if ( ! $Config{d_times}) {
290 print <<EOM ;
291SKIPPED
292# times not present
293EOM
294 exit
295 }
296}
297times ; # OP_TMS
298EXPECT
299Useless use of times in void context at - line 13.
300########
301# op.c
302use warning 'void' ;
303use Config ;
304BEGIN {
e96326af 305 if ( ! $Config{d_getprior} or $^O eq 'os2') { # Locks before fixpak22
599cee73 306 print <<EOM ;
307SKIPPED
308# getpriority not present
309EOM
310 exit
311 }
312}
313getpriority 1,2; # OP_GETPRIORITY
314EXPECT
315Useless use of getpriority in void context at - line 13.
316########
317# op.c
318use warning 'void' ;
319use Config ;
320BEGIN {
321 if ( ! $Config{d_getlogin}) {
322 print <<EOM ;
323SKIPPED
324# getlogin not present
325EOM
326 exit
327 }
328}
329getlogin ; # OP_GETLOGIN
330EXPECT
331Useless use of getlogin in void context at - line 13.
332########
333# op.c
334use warning 'void' ;
335use Config ; BEGIN {
336if ( ! $Config{d_socket}) {
337 print <<EOM ;
338SKIPPED
339# getsockname not present
340# getpeername not present
341# gethostbyname not present
342# gethostbyaddr not present
343# gethostent not present
344# getnetbyname not present
345# getnetbyaddr not present
346# getnetent not present
347# getprotobyname not present
348# getprotobynumber not present
349# getprotoent not present
350# getservbyname not present
351# getservbyport not present
352# getservent not present
353EOM
354 exit
355} }
356getsockname STDIN ; # OP_GETSOCKNAME
357getpeername STDIN ; # OP_GETPEERNAME
358gethostbyname 1 ; # OP_GHBYNAME
359gethostbyaddr 1,2; # OP_GHBYADDR
360gethostent ; # OP_GHOSTENT
361getnetbyname 1 ; # OP_GNBYNAME
362getnetbyaddr 1,2 ; # OP_GNBYADDR
363getnetent ; # OP_GNETENT
364getprotobyname 1; # OP_GPBYNAME
365getprotobynumber 1; # OP_GPBYNUMBER
366getprotoent ; # OP_GPROTOENT
367getservbyname 1,2; # OP_GSBYNAME
368getservbyport 1,2; # OP_GSBYPORT
369getservent ; # OP_GSERVENT
dfe13c55 370INIT {
371 # some functions may not be there, so we exit without running
372 exit;
373}
599cee73 374EXPECT
375Useless use of getsockname in void context at - line 24.
376Useless use of getpeername in void context at - line 25.
377Useless use of gethostbyname in void context at - line 26.
378Useless use of gethostbyaddr in void context at - line 27.
379Useless use of gethostent in void context at - line 28.
380Useless use of getnetbyname in void context at - line 29.
381Useless use of getnetbyaddr in void context at - line 30.
382Useless use of getnetent in void context at - line 31.
383Useless use of getprotobyname in void context at - line 32.
384Useless use of getprotobynumber in void context at - line 33.
385Useless use of getprotoent in void context at - line 34.
386Useless use of getservbyname in void context at - line 35.
387Useless use of getservbyport in void context at - line 36.
388Useless use of getservent in void context at - line 37.
389########
390# op.c
391use warning 'void' ;
392*a ; # OP_RV2GV
393$a ; # OP_RV2SV
394@a ; # OP_RV2AV
395%a ; # OP_RV2HV
396EXPECT
397Useless use of a variable in void context at - line 3.
398Useless use of a variable in void context at - line 4.
399Useless use of a variable in void context at - line 5.
400Useless use of a variable in void context at - line 6.
401########
402# op.c
403use warning 'void' ;
404"abc"; # OP_CONST
4057 ; # OP_CONST
406EXPECT
407Useless use of a constant in void context at - line 3.
408Useless use of a constant in void context at - line 4.
409########
410# op.c
411use warning 'unsafe' ;
412my $a ; my @a = () ; my %a = () ; my $b = \@a ; my $c = \%a ;
413@a =~ /abc/ ;
414@a =~ s/a/b/ ;
415@a =~ tr/a/b/ ;
416@$b =~ /abc/ ;
417@$b =~ s/a/b/ ;
418@$b =~ tr/a/b/ ;
419%a =~ /abc/ ;
420%a =~ s/a/b/ ;
421%a =~ tr/a/b/ ;
422%$c =~ /abc/ ;
423%$c =~ s/a/b/ ;
424%$c =~ tr/a/b/ ;
425EXPECT
426Applying pattern match to @array will act on scalar(@array) at - line 4.
427Applying substitution to @array will act on scalar(@array) at - line 5.
428Can't modify private array in substitution at - line 5, near "s/a/b/ ;"
429Applying character translation to @array will act on scalar(@array) at - line 6.
430Applying pattern match to @array will act on scalar(@array) at - line 7.
431Applying substitution to @array will act on scalar(@array) at - line 8.
432Applying character translation to @array will act on scalar(@array) at - line 9.
433Applying pattern match to %hash will act on scalar(%hash) at - line 10.
434Applying substitution to %hash will act on scalar(%hash) at - line 11.
435Applying character translation to %hash will act on scalar(%hash) at - line 12.
436Applying pattern match to %hash will act on scalar(%hash) at - line 13.
437Applying substitution to %hash will act on scalar(%hash) at - line 14.
438Applying character translation to %hash will act on scalar(%hash) at - line 15.
439Execution of - aborted due to compilation errors.
440########
441# op.c
442use warning 'syntax' ;
443my $a, $b = (1,2);
444EXPECT
df5b6949 445Parentheses missing around "my" list at - line 3.
599cee73 446########
447# op.c
448use warning 'syntax' ;
449local $a, $b = (1,2);
450EXPECT
df5b6949 451Parentheses missing around "local" list at - line 3.
599cee73 452########
453# op.c
454use warning 'syntax' ;
455print (ABC || 1) ;
456EXPECT
457Probable precedence problem on logical or at - line 3.
458########
459--FILE-- abc
460
461--FILE--
462# op.c
463use warning 'unsafe' ;
464open FH, "<abc" ;
465$x = 1 if $x = <FH> ;
466EXPECT
467Value of <HANDLE> construct can be "0"; test with defined() at - line 4.
468########
469# op.c
470use warning 'unsafe' ;
471opendir FH, "." ;
472$x = 1 if $x = readdir FH ;
473closedir FH ;
474EXPECT
475Value of readdir() operator can be "0"; test with defined() at - line 4.
476########
477# op.c
478use warning 'unsafe' ;
479$x = 1 if $x = <*> ;
480EXPECT
481Value of glob construct can be "0"; test with defined() at - line 3.
482########
483# op.c
484use warning 'unsafe' ;
485%a = (1,2,3,4) ;
486$x = 1 if $x = each %a ;
487EXPECT
488Value of each() operator can be "0"; test with defined() at - line 4.
489########
490# op.c
491use warning 'unsafe' ;
492$x = 1 while $x = <*> and 0 ;
493EXPECT
494Value of glob construct can be "0"; test with defined() at - line 3.
495########
496# op.c
497use warning 'unsafe' ;
498opendir FH, "." ;
499$x = 1 while $x = readdir FH and 0 ;
500closedir FH ;
501EXPECT
502Value of readdir() operator can be "0"; test with defined() at - line 4.
503########
504# op.c
505use warning 'redefine' ;
506sub fred {}
507sub fred {}
508EXPECT
509Subroutine fred redefined at - line 4.
510########
511# op.c
512use warning 'redefine' ;
513sub fred () { 1 }
514sub fred () { 1 }
515EXPECT
516Constant subroutine fred redefined at - line 4.
517########
518# op.c
519use warning 'redefine' ;
520format FRED =
521.
522format FRED =
523.
524EXPECT
525Format FRED redefined at - line 5.
526########
527# op.c
528use warning 'syntax' ;
529push FRED;
530EXPECT
531Array @FRED missing the @ in argument 1 of push() at - line 3.
532########
533# op.c
534use warning 'syntax' ;
535@a = keys FRED ;
536EXPECT
537Hash %FRED missing the % in argument 1 of keys() at - line 3.
538########
539# op.c
540use warning 'syntax' ;
dfe13c55 541exec "$^X -e 1" ;
599cee73 542my $a
543EXPECT
544Statement unlikely to be reached at - line 4.
545(Maybe you meant system() when you said exec()?)