Commit | Line | Data |
---|---|---|
f21d7107 | 1 | pad.c AOK |
2 | ||
7f73a9f1 | 3 | "%s" variable %s masks earlier declaration in same scope |
f21d7107 | 4 | my $x; |
5 | my $x ; | |
6 | ||
b5c19bd7 | 7 | Variable "%s" will not stay shared |
f21d7107 | 8 | sub x { |
9 | my $x; | |
10 | sub y { | |
b5c19bd7 | 11 | sub { $x } |
f21d7107 | 12 | } |
13 | } | |
14 | ||
f21d7107 | 15 | sub x { |
16 | my $x; | |
17 | sub y { | |
b5c19bd7 | 18 | $x |
f21d7107 | 19 | } |
20 | } | |
b5c19bd7 | 21 | |
f21d7107 | 22 | "our" variable %s redeclared (Did you mean "local" instead of "our"?) |
23 | our $x; | |
24 | { | |
25 | our $x; | |
26 | } | |
27 | ||
28 | %s never introduced [pad_leavemy] TODO | |
29 | ||
30 | __END__ | |
31 | # pad.c | |
32 | use warnings 'misc' ; | |
33 | my $x ; | |
34 | my $x ; | |
35 | my $y = my $y ; | |
f2f96cd5 | 36 | my $p ; |
37 | package X ; | |
38 | my $p ; | |
39 | package main ; | |
f21d7107 | 40 | no warnings 'misc' ; |
41 | my $x ; | |
42 | my $y ; | |
f2f96cd5 | 43 | my $p ; |
f21d7107 | 44 | EXPECT |
45 | "my" variable $x masks earlier declaration in same scope at - line 4. | |
46 | "my" variable $y masks earlier declaration in same statement at - line 5. | |
f2f96cd5 | 47 | "my" variable $p masks earlier declaration in same scope at - line 8. |
f21d7107 | 48 | ######## |
49 | # pad.c | |
f793795c | 50 | use warnings 'misc' ; |
51 | our $x ; | |
f793795c | 52 | my $x ; |
53 | our $y = my $y ; | |
f2f96cd5 | 54 | our $p ; |
55 | package X ; | |
56 | my $p ; | |
57 | package main ; | |
f793795c | 58 | no warnings 'misc' ; |
59 | our $z ; | |
60 | my $z ; | |
61 | our $t = my $t ; | |
f2f96cd5 | 62 | our $q ; |
63 | package X ; | |
64 | my $q ; | |
f793795c | 65 | EXPECT |
66 | "my" variable $x masks earlier declaration in same scope at - line 4. | |
67 | "my" variable $y masks earlier declaration in same statement at - line 5. | |
f2f96cd5 | 68 | "my" variable $p masks earlier declaration in same scope at - line 8. |
f793795c | 69 | ######## |
70 | # pad.c | |
f793795c | 71 | use warnings 'misc' ; |
72 | my $x ; | |
73 | our $x ; | |
74 | my $y = our $y ; | |
f2f96cd5 | 75 | my $p ; |
76 | package X ; | |
77 | our $p ; | |
78 | package main ; | |
f793795c | 79 | no warnings 'misc' ; |
80 | my $z ; | |
81 | our $z ; | |
82 | my $t = our $t ; | |
f2f96cd5 | 83 | my $q ; |
84 | package X ; | |
85 | our $q ; | |
f793795c | 86 | EXPECT |
f2f96cd5 | 87 | "our" variable $x masks earlier declaration in same scope at - line 4. |
88 | "our" variable $y masks earlier declaration in same statement at - line 5. | |
89 | "our" variable $p masks earlier declaration in same scope at - line 8. | |
f793795c | 90 | ######## |
91 | # pad.c | |
f21d7107 | 92 | use warnings 'closure' ; |
93 | sub x { | |
94 | my $x; | |
95 | sub y { | |
96 | $x | |
97 | } | |
98 | } | |
99 | EXPECT | |
100 | Variable "$x" will not stay shared at - line 7. | |
101 | ######## | |
102 | # pad.c | |
103 | no warnings 'closure' ; | |
104 | sub x { | |
105 | my $x; | |
106 | sub y { | |
107 | $x | |
108 | } | |
109 | } | |
110 | EXPECT | |
111 | ||
112 | ######## | |
113 | # pad.c | |
114 | use warnings 'closure' ; | |
115 | sub x { | |
b5c19bd7 | 116 | my $x; |
f21d7107 | 117 | sub y { |
b5c19bd7 | 118 | sub { $x } |
f21d7107 | 119 | } |
120 | } | |
121 | EXPECT | |
b5c19bd7 | 122 | Variable "$x" will not stay shared at - line 6. |
123 | ######## | |
124 | # pad.c | |
125 | use warnings 'closure' ; | |
126 | sub x { | |
127 | my $x; | |
128 | sub { | |
129 | $x; | |
130 | sub y { | |
131 | $x | |
132 | } | |
133 | }->(); | |
134 | } | |
135 | EXPECT | |
136 | Variable "$x" will not stay shared at - line 9. | |
137 | ######## | |
138 | # pad.c | |
139 | use warnings 'closure' ; | |
140 | my $x; | |
141 | sub { | |
142 | $x; | |
143 | sub f { | |
144 | sub { $x }->(); | |
145 | } | |
146 | }->(); | |
147 | EXPECT | |
f21d7107 | 148 | |
149 | ######## | |
150 | # pad.c | |
151 | use warnings 'closure' ; | |
b5c19bd7 | 152 | sub { |
153 | my $x; | |
154 | sub f { $x } | |
155 | }->(); | |
156 | EXPECT | |
157 | Variable "$x" is not available at - line 5. | |
158 | ######## | |
159 | # pad.c | |
160 | use warnings 'closure' ; | |
161 | sub { | |
162 | my $x; | |
163 | eval 'sub f { $x }'; | |
164 | }->(); | |
165 | EXPECT | |
166 | ||
167 | ######## | |
168 | # pad.c | |
169 | use warnings 'closure' ; | |
170 | sub { | |
171 | my $x; | |
172 | sub f { eval '$x' } | |
173 | }->(); | |
174 | f(); | |
175 | EXPECT | |
176 | Variable "$x" is not available at (eval 1) line 2. | |
177 | ######## | |
178 | # pad.c | |
179 | use warnings 'closure' ; | |
f21d7107 | 180 | sub x { |
b5c19bd7 | 181 | our $x; |
f21d7107 | 182 | sub y { |
b5c19bd7 | 183 | $x |
f21d7107 | 184 | } |
185 | } | |
186 | EXPECT | |
b5c19bd7 | 187 | |
188 | ######## | |
189 | # pad.c | |
190 | # see bugid 1754 | |
191 | use warnings 'closure' ; | |
192 | sub f { | |
193 | my $x; | |
194 | sub { eval '$x' }; | |
195 | } | |
196 | f()->(); | |
197 | EXPECT | |
198 | Variable "$x" is not available at (eval 1) line 2. | |
f21d7107 | 199 | ######## |
2740392c | 200 | use warnings 'closure' ; |
201 | { | |
202 | my $x = 1; | |
203 | $y = \$x; # force abandonment rather than clear-in-place at scope exit | |
204 | sub f2 { eval '$x' } | |
205 | } | |
206 | f2(); | |
207 | EXPECT | |
208 | Variable "$x" is not available at (eval 1) line 2. | |
209 | ######## | |
14f338dc | 210 | use warnings 'closure' ; |
211 | for my $x (1,2,3) { | |
212 | sub f { eval '$x' } | |
213 | f(); | |
214 | } | |
215 | f(); | |
216 | EXPECT | |
217 | Variable "$x" is not available at (eval 4) line 2. | |
218 | ######## | |
f21d7107 | 219 | # pad.c |
220 | no warnings 'closure' ; | |
221 | sub x { | |
222 | my $x; | |
223 | sub y { | |
224 | sub { $x } | |
225 | } | |
226 | } | |
227 | EXPECT | |
228 | ||
229 | ######## | |
230 | use warnings 'misc' ; | |
f2f96cd5 | 231 | my $x; |
232 | { | |
233 | my $x; | |
234 | } | |
235 | EXPECT | |
236 | ######## | |
7f73a9f1 | 237 | # pad.c |
238 | use warnings 'misc' ; | |
239 | our $x ; | |
240 | our $x ; | |
241 | our $y = our $y ; | |
242 | our $p ; | |
243 | package X ; | |
244 | our $p ; | |
245 | package main ; | |
246 | no warnings 'misc' ; | |
247 | our $a ; | |
248 | our $a ; | |
249 | our $b = our $b ; | |
250 | our $c ; | |
251 | package X ; | |
252 | our $c ; | |
253 | EXPECT | |
254 | "our" variable $x redeclared at - line 4. | |
255 | "our" variable $y redeclared at - line 5. | |
256 | ######## | |
f2f96cd5 | 257 | use warnings 'misc' ; |
f21d7107 | 258 | our $x; |
259 | { | |
260 | our $x; | |
261 | } | |
7f73a9f1 | 262 | our $x; |
263 | no warnings 'misc' ; | |
264 | our $y; | |
265 | { | |
266 | our $y; | |
267 | } | |
268 | our $y; | |
f21d7107 | 269 | EXPECT |
270 | "our" variable $x redeclared at - line 4. | |
271 | (Did you mean "local" instead of "our"?) | |
7f73a9f1 | 272 | "our" variable $x redeclared at - line 6. |
929a0744 | 273 | ######## |
f2f96cd5 | 274 | use warnings 'misc' ; |
275 | our $x; | |
276 | { | |
277 | my $x; | |
278 | } | |
7f73a9f1 | 279 | no warnings 'misc' ; |
280 | our $y; | |
281 | { | |
282 | my $y; | |
283 | } | |
f2f96cd5 | 284 | EXPECT |
285 | ######## | |
286 | use warnings 'misc' ; | |
287 | my $x; | |
288 | { | |
289 | our $x; | |
290 | } | |
7f73a9f1 | 291 | no warnings 'misc' ; |
292 | my $y; | |
293 | { | |
294 | our $y; | |
295 | } | |
296 | EXPECT | |
297 | ######## | |
298 | use warnings 'misc' ; | |
299 | my $x; | |
300 | { | |
301 | my $x; | |
302 | } | |
303 | no warnings 'misc' ; | |
304 | my $y; | |
305 | { | |
306 | my $y; | |
307 | } | |
f2f96cd5 | 308 | EXPECT |
309 | ######## | |
929a0744 | 310 | # an our var being introduced should suppress errors about global syms |
311 | use strict; | |
312 | use warnings; | |
313 | our $x unless $x; | |
314 | EXPECT | |
1456f925 | 315 | ######## |
316 | use warnings 'misc'; | |
317 | our $qunckkk; | |
318 | our $_; | |
319 | package clank_est; | |
320 | our $qunckkk; | |
321 | our $_; | |
322 | no warnings 'misc'; | |
323 | our $ouch; | |
324 | our $_; | |
325 | package whack; | |
326 | our $ouch; | |
327 | our $_; | |
328 | EXPECT | |
329 | "our" variable $_ redeclared at - line 6. |