use strict;
use warnings;
-use Test::More tests => 16;
+use Test::More tests => 19;
-use Scope::Upper qw/want_at/;
+use Scope::Upper qw/want_at UP HERE/;
sub check {
my ($w, $exp, $desc) = @_;
my $w;
-check want_at, undef, 'main : want_at';
-check want_at(0), undef, 'main : want_at(0)';
-check want_at(1), undef, 'main : want_at(1)';
-check want_at(-1), undef, 'main : want_at(-1)';
+check want_at, undef, 'main : want_at';
+check want_at(HERE), undef, 'main : want_at HERE';
+check want_at(UP), undef, 'main : want_at UP';
+check want_at(-1), undef, 'main : want_at -1';
my @a = sub {
check want_at, 1, 'sub0 : want_at';
{
- check want_at, 1, 'sub : want_at';
- check want_at(1), 1, 'sub : want_at(1)';
+ check want_at, 1, 'sub : want_at';
+ check want_at(UP), 1, 'sub : want_at UP';
for (1) {
- check want_at, 1, 'for : want_at';
- check want_at(1), 1, 'for : want_at(1)';
- check want_at(2), 1, 'for : want_at(2)';
+ check want_at, 1, 'for : want_at';
+ check want_at(UP), 1, 'for : want_at UP';
+ check want_at(UP UP), 1, 'for : want_at UP UP';
}
+ eval "
+ check want_at, undef, 'eval string : want_at';
+ check want_at(UP), 1, 'eval string : want_at UP';
+ check want_at(UP UP), 1, 'eval string : want_at UP UP';
+ ";
my $x = eval {
do {
- check want_at, 0, 'do : want_at';
- check want_at(1), 0, 'do : want_at(0)';
- check want_at(2), 1, 'do : want_at(1)';
+ check want_at, 0, 'do : want_at';
+ check want_at(UP), 0, 'do : want_at UP';
+ check want_at(UP UP), 1, 'do : want_at UP UP';
};
- check want_at, 0, 'eval : want_at';
- check want_at(1), 1, 'eval : want_at(0)';
- check want_at(2), 1, 'eval : want_at(1)';
+ check want_at, 0, 'eval : want_at';
+ check want_at(UP), 1, 'eval : want_at UP';
+ check want_at(UP UP), 1, 'eval : want_at UP UP';
};
}
}->();