  pad.c		AOK

     "my" 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 ;
no warnings 'misc' ;
my $x ;
my $y ;
EXPECT
"my" variable $x masks earlier declaration in same scope at - line 4.
"my" variable $y masks earlier declaration in same statement at - line 5.
########
# pad.c
use warnings 'misc' ;
our $x ;
our $x ;
our $y = our $y ;
no warnings 'misc' ;
our $x ;
our $y ;
EXPECT
"our" variable $x masks earlier declaration in same scope at - line 4.
"our" variable $y masks earlier declaration in same statement at - line 5.
########
# pad.c
use warnings 'misc' ;
our $x ;
my $x ;
our $y = my $y ;
no warnings 'misc' ;
our $z ;
my $z ;
our $t = my $t ;
EXPECT
"my" variable $x masks earlier declaration in same scope at - line 4.
"my" variable $y masks earlier declaration in same statement at - line 5.
########
# pad.c
# TODO not implemented yet
use warnings 'misc' ;
my $x ;
our $x ;
my $y = our $y ;
no warnings 'misc' ;
my $z ;
our $z ;
my $t = our $t ;
EXPECT
"our" variable $x masks earlier declaration in same scope at - line 5.
"our" variable $y masks earlier declaration in same statement at - line 6.
########
# pad.c
use warnings 'closure' ;
sub x {
      my $x;
      sub y {
         $x
      }
   }
EXPECT
Variable "$x" will not stay shared at - line 7.
########
# pad.c
no warnings 'closure' ;
sub x {
      my $x;
      sub y {
         $x
      }
   }
EXPECT

########
# pad.c
use warnings 'closure' ;
sub x {
      my $x;
      sub y {
         sub { $x }
      }
   }
EXPECT
Variable "$x" will not stay shared at - line 6.
########
# pad.c
use warnings 'closure' ;
sub x {
    my $x;
    sub {
	$x;
	sub y {
	    $x
	}
    }->();
}
EXPECT
Variable "$x" will not stay shared at - line 9.
########
# pad.c
use warnings 'closure' ;
my $x;
sub {
    $x;
    sub f {
	sub { $x }->();
    }
}->();
EXPECT

########
# pad.c
use warnings 'closure' ;
sub {
    my $x;
    sub f { $x }
}->();
EXPECT
Variable "$x" is not available at - line 5.
########
# pad.c
use warnings 'closure' ;
sub {
    my $x;
    eval 'sub f { $x }';
}->();
EXPECT

########
# pad.c
use warnings 'closure' ;
sub {
    my $x;
    sub f { eval '$x' }
}->();
f();
EXPECT
Variable "$x" is not available at (eval 1) line 2.
########
# 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;
    sub { eval '$x' };
}
f()->();
EXPECT
Variable "$x" is not available at (eval 1) line 2.
########
use warnings 'closure' ;
{
    my $x = 1;
    $y = \$x; # force abandonment rather than clear-in-place at scope exit
    sub f2 { eval '$x' }
}
f2();
EXPECT
Variable "$x" is not available at (eval 1) line 2.
########
use warnings 'closure' ;
for my $x (1,2,3) {
    sub f { eval '$x' }
    f();
}
f();
EXPECT
Variable "$x" is not available at (eval 4) line 2.
########
# pad.c
no warnings 'closure' ;
sub x {
      my $x;
      sub y {
         sub { $x }
      }
   }
EXPECT

########
use warnings 'misc' ;
our $x;
{
    our $x;
}
EXPECT
"our" variable $x redeclared at - line 4.
	(Did you mean "local" instead of "our"?)
########
# an our var being introduced should suppress errors about global syms
use strict;
use warnings;
our $x unless $x;
EXPECT
