Commit | Line | Data |
---|---|---|
f21d7107 | 1 | pad.c AOK |
2 | ||
3 | "my" variable %s masks earlier declaration in same scope | |
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 ; | |
52 | our $x ; | |
53 | our $y = our $y ; | |
f2f96cd5 | 54 | our $p ; |
55 | package X ; | |
56 | our $p ; | |
f793795c | 57 | EXPECT |
f793795c | 58 | ######## |
59 | # pad.c | |
60 | use warnings 'misc' ; | |
61 | our $x ; | |
62 | my $x ; | |
63 | our $y = my $y ; | |
f2f96cd5 | 64 | our $p ; |
65 | package X ; | |
66 | my $p ; | |
67 | package main ; | |
f793795c | 68 | no warnings 'misc' ; |
69 | our $z ; | |
70 | my $z ; | |
71 | our $t = my $t ; | |
f2f96cd5 | 72 | our $q ; |
73 | package X ; | |
74 | my $q ; | |
f793795c | 75 | EXPECT |
76 | "my" variable $x masks earlier declaration in same scope at - line 4. | |
77 | "my" variable $y masks earlier declaration in same statement at - line 5. | |
f2f96cd5 | 78 | "my" variable $p masks earlier declaration in same scope at - line 8. |
f793795c | 79 | ######## |
80 | # pad.c | |
f793795c | 81 | use warnings 'misc' ; |
82 | my $x ; | |
83 | our $x ; | |
84 | my $y = our $y ; | |
f2f96cd5 | 85 | my $p ; |
86 | package X ; | |
87 | our $p ; | |
88 | package main ; | |
f793795c | 89 | no warnings 'misc' ; |
90 | my $z ; | |
91 | our $z ; | |
92 | my $t = our $t ; | |
f2f96cd5 | 93 | my $q ; |
94 | package X ; | |
95 | our $q ; | |
f793795c | 96 | EXPECT |
f2f96cd5 | 97 | "our" variable $x masks earlier declaration in same scope at - line 4. |
98 | "our" variable $y masks earlier declaration in same statement at - line 5. | |
99 | "our" variable $p masks earlier declaration in same scope at - line 8. | |
f793795c | 100 | ######## |
101 | # pad.c | |
f21d7107 | 102 | use warnings 'closure' ; |
103 | sub x { | |
104 | my $x; | |
105 | sub y { | |
106 | $x | |
107 | } | |
108 | } | |
109 | EXPECT | |
110 | Variable "$x" will not stay shared at - line 7. | |
111 | ######## | |
112 | # pad.c | |
113 | no warnings 'closure' ; | |
114 | sub x { | |
115 | my $x; | |
116 | sub y { | |
117 | $x | |
118 | } | |
119 | } | |
120 | EXPECT | |
121 | ||
122 | ######## | |
123 | # pad.c | |
124 | use warnings 'closure' ; | |
125 | sub x { | |
b5c19bd7 | 126 | my $x; |
f21d7107 | 127 | sub y { |
b5c19bd7 | 128 | sub { $x } |
f21d7107 | 129 | } |
130 | } | |
131 | EXPECT | |
b5c19bd7 | 132 | Variable "$x" will not stay shared at - line 6. |
133 | ######## | |
134 | # pad.c | |
135 | use warnings 'closure' ; | |
136 | sub x { | |
137 | my $x; | |
138 | sub { | |
139 | $x; | |
140 | sub y { | |
141 | $x | |
142 | } | |
143 | }->(); | |
144 | } | |
145 | EXPECT | |
146 | Variable "$x" will not stay shared at - line 9. | |
147 | ######## | |
148 | # pad.c | |
149 | use warnings 'closure' ; | |
150 | my $x; | |
151 | sub { | |
152 | $x; | |
153 | sub f { | |
154 | sub { $x }->(); | |
155 | } | |
156 | }->(); | |
157 | EXPECT | |
f21d7107 | 158 | |
159 | ######## | |
160 | # pad.c | |
161 | use warnings 'closure' ; | |
b5c19bd7 | 162 | sub { |
163 | my $x; | |
164 | sub f { $x } | |
165 | }->(); | |
166 | EXPECT | |
167 | Variable "$x" is not available at - line 5. | |
168 | ######## | |
169 | # pad.c | |
170 | use warnings 'closure' ; | |
171 | sub { | |
172 | my $x; | |
173 | eval 'sub f { $x }'; | |
174 | }->(); | |
175 | EXPECT | |
176 | ||
177 | ######## | |
178 | # pad.c | |
179 | use warnings 'closure' ; | |
180 | sub { | |
181 | my $x; | |
182 | sub f { eval '$x' } | |
183 | }->(); | |
184 | f(); | |
185 | EXPECT | |
186 | Variable "$x" is not available at (eval 1) line 2. | |
187 | ######## | |
188 | # pad.c | |
189 | use warnings 'closure' ; | |
f21d7107 | 190 | sub x { |
b5c19bd7 | 191 | our $x; |
f21d7107 | 192 | sub y { |
b5c19bd7 | 193 | $x |
f21d7107 | 194 | } |
195 | } | |
196 | EXPECT | |
b5c19bd7 | 197 | |
198 | ######## | |
199 | # pad.c | |
200 | # see bugid 1754 | |
201 | use warnings 'closure' ; | |
202 | sub f { | |
203 | my $x; | |
204 | sub { eval '$x' }; | |
205 | } | |
206 | f()->(); | |
207 | EXPECT | |
208 | Variable "$x" is not available at (eval 1) line 2. | |
f21d7107 | 209 | ######## |
2740392c | 210 | use warnings 'closure' ; |
211 | { | |
212 | my $x = 1; | |
213 | $y = \$x; # force abandonment rather than clear-in-place at scope exit | |
214 | sub f2 { eval '$x' } | |
215 | } | |
216 | f2(); | |
217 | EXPECT | |
218 | Variable "$x" is not available at (eval 1) line 2. | |
219 | ######## | |
14f338dc | 220 | use warnings 'closure' ; |
221 | for my $x (1,2,3) { | |
222 | sub f { eval '$x' } | |
223 | f(); | |
224 | } | |
225 | f(); | |
226 | EXPECT | |
227 | Variable "$x" is not available at (eval 4) line 2. | |
228 | ######## | |
f21d7107 | 229 | # pad.c |
230 | no warnings 'closure' ; | |
231 | sub x { | |
232 | my $x; | |
233 | sub y { | |
234 | sub { $x } | |
235 | } | |
236 | } | |
237 | EXPECT | |
238 | ||
239 | ######## | |
240 | use warnings 'misc' ; | |
f2f96cd5 | 241 | my $x; |
242 | { | |
243 | my $x; | |
244 | } | |
245 | EXPECT | |
246 | ######## | |
247 | use warnings 'misc' ; | |
f21d7107 | 248 | our $x; |
249 | { | |
250 | our $x; | |
251 | } | |
252 | EXPECT | |
253 | "our" variable $x redeclared at - line 4. | |
254 | (Did you mean "local" instead of "our"?) | |
929a0744 | 255 | ######## |
f2f96cd5 | 256 | use warnings 'misc' ; |
257 | our $x; | |
258 | { | |
259 | my $x; | |
260 | } | |
261 | EXPECT | |
262 | ######## | |
263 | use warnings 'misc' ; | |
264 | my $x; | |
265 | { | |
266 | our $x; | |
267 | } | |
268 | EXPECT | |
269 | ######## | |
929a0744 | 270 | # an our var being introduced should suppress errors about global syms |
271 | use strict; | |
272 | use warnings; | |
273 | our $x unless $x; | |
274 | EXPECT |