pad.c AOK
"%s" variable %s masks earlier declaration in same scope
my $x;
my $x ;
Variable "%s" will not stay shared
sub x {
my $x;
sub y {
sub { $x }
}
}
sub x {
my $x;
sub y {
$x
}
}
"our" variable %s redeclared (Did you mean "local" instead of "our"?)
our $x;
{
our $x;
}
%s never introduced [pad_leavemy] TODO
__END__
# pad.c
use warnings 'misc' ;
my $x ;
my $x ;
my $y = my $y ;
my $p ;
package X ;
my $p ;
package main ;
no warnings 'misc' ;
my $x ;
my $y ;
my $p ;
EXPECT
"my" variable $x masks earlier declaration in same scope at - line 4 character 7.
"my" variable $y masks earlier declaration in same statement at - line 5 character 15.
"my" variable $p masks earlier declaration in same scope at - line 8 character 7.
########
# pad.c
use warnings 'misc' ;
our $x ;
my $x ;
our $y = my $y ;
our $p ;
package X ;
my $p ;
package main ;
no warnings 'misc' ;
our $z ;
my $z ;
our $t = my $t ;
our $q ;
package X ;
my $q ;
EXPECT
"my" variable $x masks earlier declaration in same scope at - line 4 character 7.
"my" variable $y masks earlier declaration in same statement at - line 5 character 16.
"my" variable $p masks earlier declaration in same scope at - line 8 character 7.
########
# pad.c
use warnings 'misc' ;
my $x ;
our $x ;
my $y = our $y ;
my $p ;
package X ;
our $p ;
package main ;
no warnings 'misc' ;
my $z ;
our $z ;
my $t = our $t ;
my $q ;
package X ;
our $q ;
EXPECT
"our" variable $x masks earlier declaration in same scope at - line 4 character 8.
"our" variable $y masks earlier declaration in same statement at - line 5 character 16.
"our" variable $p masks earlier declaration in same scope at - line 8 character 8.
########
# TODO pad.c
use warnings 'closure' ;
sub x {
my $x;
sub y {
$x
}
}
EXPECT
Variable "$x" will not stay shared at - line 7 character 7.
########
# pad.c
no warnings 'closure' ;
sub x {
my $x;
sub y {
$x
}
}
EXPECT
########
# TODO pad.c
use warnings 'closure' ;
sub x {
my $x;
sub y {
sub { $x }
}
}
EXPECT
Variable "$x" will not stay shared at - line 6 character 19.
########
# TODO pad.c
use warnings 'closure' ;
sub x {
my $x;
sub {
$x;
sub y {
$x
}
}->();
}
EXPECT
Variable "$x" will not stay shared at - line 9 character 2.
########
# TODO pad.c
use warnings 'closure' ;
my $x;
sub {
$x;
sub f {
sub { $x }->();
}
}->();
EXPECT
########
# TODO pad.c
use warnings 'closure' ;
sub {
my $x;
sub f { $x }
}->();
EXPECT
Variable "$x" is not available at - line 5 character 16.
########
# TODO pad.c
use warnings 'closure' ;
sub {
my $x;
eval 'sub f { $x }';
}->();
EXPECT
########
# TODO pad.c
use warnings 'closure' ;
sub {
my $x;
sub f { eval '$x' }
}->();
f();
EXPECT
Variable "$x" is not available at (eval 1) line 2 character 4.
(eval) called at - line 5 character 13.
main::f called at - line 7 character 1.
########
# TODO pad.c
use warnings 'closure' ;
sub x {
our $x;
sub y {
$x
}
}
EXPECT
########
# pad.c
# see bugid 1754
use warnings 'closure' ;
sub f {
my $x = "ok";
sub { eval 'print $^STDOUT, $x, "\n"' };
}
f()->();
EXPECT
ok
########
use warnings 'closure' ;
do {
my $x = "ok";
sub f2 { eval 'print $^STDOUT, $x, "\n"' }
};
f2();
EXPECT
ok
########
# TODO
use warnings 'closure' ;
for my $x (1..3) {
sub f { eval '$x' }
f();
}
f();
EXPECT
Variable "$x" is not available at (eval 4) line 2 character 4.
(eval) called at - line 3 character 13.
main::f called at - line 6 character 1.
########
# TODO pad.c
no warnings 'closure' ;
sub x {
my $x;
sub y {
sub { $x }
}
}
EXPECT
########
use warnings 'misc' ;
my $x;
do {
my $x;
};
EXPECT
########
# TODO pad.c
use warnings 'misc' ;
our $x ;
our $x ;
our $y = our $y ;
our $p ;
package X ;
our $p ;
package main ;
no warnings 'misc' ;
our $a ;
our $a ;
our $b = our $b ;
our $c ;
package X ;
our $c ;
EXPECT
"our" variable $x redeclared at - line 4.
"our" variable $y redeclared at - line 5.
########
# TODO
use warnings 'misc' ;
our $x;
do {
our $x;
};
our $x;
no warnings 'misc' ;
our $y;
do {
our $y;
};
our $y;
EXPECT
"our" variable $x redeclared at - line 4.
(Did you mean "local" instead of "our"?)
at - line 4.
"our" variable $x redeclared at - line 6.
########
use warnings 'misc' ;
our $x;
do {
my $x;
};
no warnings 'misc' ;
our $y;
do {
my $y;
};
EXPECT
########
use warnings 'misc' ;
my $x;
do {
our $x;
};
no warnings 'misc' ;
my $y;
do {
our $y;
};
EXPECT
########
use warnings 'misc' ;
my $x;
do {
my $x;
};
no warnings 'misc' ;
my $y;
do {
my $y;
};
EXPECT
########
# an our var being introduced should suppress errors about global syms
our $x unless $x;
EXPECT
########