use Test::More tests => 38;
-use Scope::Upper qw/reap/;
+use Scope::Upper qw/reap UP HERE/;
our ($x, $y);
{
local $x = 2;
{
- reap \&check => 1;
+ reap \&check => UP;
}
is $x, 2, 'goto 1 [not yet - x]';
is $y, undef, 'goto 1 [not yet - y]';
{
local $x = 3;
{
- reap \&check => 2;
+ reap \&check => UP UP;
}
is $x, 3, 'goto 2 [not yet - x]';
is $y, undef, 'goto 2 [not yet - y]';
{
{
local $x = 3;
- reap \&check => 3;
+ reap \&check => UP UP UP;
is $x, 3, 'die - reap outside eval [not yet 1 - x]';
is $y, undef, 'die - reap outside eval [not yet 1 - y]';
}
{
{
local $x = 3;
- reap \&check => 2;
+ reap \&check => UP UP;
is $x, 3, 'die - reap at eval [not yet 1 - x]';
is $y, undef, 'die - reap at eval [not yet 1 - y]';
}
{
{
local $x = 3;
- reap \&check => 1;
+ reap \&check => UP;
is $x, 3, 'die - reap inside eval [not yet 1 - x]';
is $y, undef, 'die - reap inside eval [not yet 1 - y]';
}
local $x = 2;
eval {
local $x = 3;
- reap { ++$y; die "reaped\n" } => 0;
+ reap { ++$y; die "reaped\n" } => HERE;
is $x, 3, 'die in reap at eval [not yet - x]';
is $y, undef, 'die in reap at eval [not yet - y]';
}; # should trigger here, but the die isn't catched by this eval
local $x = 2;
{
local $x = 3;
- reap { ++$y; die "reaped\n" } => 0;
+ reap { ++$y; die "reaped\n" } => HERE;
is $x, 3, 'die in reap inside eval [not yet - x]';
is $y, undef, 'die in reap inside eval [not yet - y]';
} # should trigger here