1syntax anti-lint
2
3__END__
4-X
5# nolint: check compile time $^W is zapped
6BEGIN { $^W = 1 ;}
7$a = $b = 1 ;
8$a =+ 1 ;
9close STDIN ; print STDIN "abc" ;
10EXPECT
11########
12-X
13# nolint: check runtime $^W is zapped
14$^W = 1 ;
15close STDIN ; print STDIN "abc" ;
16EXPECT
17########
18-X
19# nolint: check runtime $^W is zapped
20{
21  $^W = 1 ;
22  close STDIN ; print STDIN "abc" ;
23}
24EXPECT
25########
26-X
27# nolint: check "no warnings" is zapped
28use warnings ;
29$a = $b = 1 ;
30$a =+ 1 ;
31close STDIN ; print STDIN "abc" ;
32EXPECT
33########
34-X
35# nolint: check "no warnings" is zapped
36{
37  use warnings ;
38  close STDIN ; print STDIN "abc" ;
39}
40EXPECT
41########
42-Xw
43# nolint: check combination of -w and -X
44{
45  $^W = 1 ;
46  close STDIN ; print STDIN "abc" ;
47}
48EXPECT
49########
50-X
51--FILE-- abc.pm
52use warnings 'syntax' ;
53my $a = 0;
54$a =+ 1 ;
551;
56--FILE--
57use warnings 'uninitialized' ;
58use abc;
59my $a ; chop $a ;
60EXPECT
61########
62-X
63--FILE-- abc
64use warnings 'syntax' ;
65my $a = 0;
66$a =+ 1 ;
671;
68--FILE--
69use warnings 'uninitialized' ;
70require "./abc";
71my $a ; chop $a ;
72EXPECT
73########
74-X
75--FILE-- abc.pm
76BEGIN {$^W = 1}
77my ($a, $b) = (0,0);
78$a =+ 1 ;
791;
80--FILE--
81$^W = 1 ;
82use abc;
83my $a ; chop $a ;
84EXPECT
85########
86-X
87--FILE-- abc
88BEGIN {$^W = 1}
89my ($a, $b) = (0,0);
90$a =+ 1 ;
911;
92--FILE--
93$^W = 1 ;
94require "./abc";
95my $a ; chop $a ;
96EXPECT
97########
98-X
99# Check scope of pragma with eval
100use warnings;
101{
102    no warnings ;
103    eval '
104        my $b ; chop $b ;
105    '; print STDERR $@ ;
106    my $b ; chop $b ;
107}
108EXPECT
109
110########
111-X
112# Check scope of pragma with eval
113use warnings;
114{
115    no warnings ;
116    eval q[
117        use warnings 'uninitialized' ;
118        my $b ; chop $b ;
119    ]; print STDERR $@;
120    my $b ; chop $b ;
121}
122EXPECT
123
124########
125-X
126# Check scope of pragma with eval
127no warnings;
128{
129    use warnings 'uninitialized' ;
130    eval '
131        my $b ; chop $b ;
132    '; print STDERR $@ ;
133    my $b ; chop $b ;
134}
135EXPECT
136
137########
138-X
139# Check scope of pragma with eval
140no warnings;
141{
142    use warnings 'uninitialized' ;
143    eval '
144        no warnings ;
145        my $b ; chop $b ;
146    '; print STDERR $@ ;
147    my $b ; chop $b ;
148}
149EXPECT
150
151########
152-X
153# Check scope of pragma with eval
154use warnings;
155{
156    no warnings ;
157    eval '
158        my $a =+ 1 ;
159    '; print STDERR $@ ;
160    my $a =+ 1 ;
161}
162EXPECT
163
164########
165-X
166# Check scope of pragma with eval
167use warnings;
168{
169    no warnings ;
170    eval q[
171        use warnings 'syntax' ;
172        my $a =+ 1 ;
173    ]; print STDERR $@;
174    my $a =+ 1 ;
175}
176EXPECT
177
178########
179-X
180# Check scope of pragma with eval
181no warnings;
182{
183    use warnings 'syntax' ;
184    eval '
185        my $a =+ 1 ;
186    '; print STDERR $@;
187    my $a =+ 1 ;
188}
189EXPECT
190
191########
192-X
193# Check scope of pragma with eval
194no warnings;
195{
196    use warnings 'syntax' ;
197    eval '
198        no warnings ;
199        my $a =+ 1 ;
200    '; print STDERR $@;
201    my $a =+ 1 ;
202}
203EXPECT
204
205