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