File: uncover_code.t

package info (click to toggle)
liblexical-var-perl 0.010-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 464 kB
  • sloc: perl: 76; makefile: 3
file content (60 lines) | stat: -rw-r--r-- 1,017 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
use warnings;
use strict;

use Test::More tests => 8;

our @x = (100, 200);
@x = @x;
sub foo ($) { $_[0]+1 }
our @values;

@values = ();
eval q{
	push @values, foo @x, 20;
	push @values, foo(@x);
};
is $@, "";
is_deeply \@values, [ 3, 20, 3 ];

@values = ();
eval q{
	no Lexical::Var '&foo';
	push @values, foo @x, 20;
	push @values, foo(@x);
};
is $@, "";
is_deeply \@values, [ 3, 20, 3 ];

@values = ();
eval q{
	use Lexical::Var '&foo' => sub { 1 };
	no Lexical::Var '&foo';
	push @values, foo @x, 20;
	push @values, foo(@x);
};
is $@, "";
is_deeply \@values, [ 3, 20, 3 ];

SKIP: { skip "\"my sub\" unavailable", 2 if "$]" < 5.017004;

@values = ();
eval q{
	no warnings "$]" >= 5.017005 ? "experimental::lexical_subs" :
		"experimental";
	use feature "lexical_subs";
	my sub foo { 1 }
	no Lexical::Var '&foo';
	push @values, foo @x, 20;
	push @values, foo(@x);
};
if("$]" < 5.019001) {
	like $@, qr/\Acan't shadow core lexical subroutine/;
	ok 1;
} else {
	is $@, "";
	is_deeply \@values, [ 3, 20, 3 ];
}

}

1;