Commit | Line | Data |
9bd5658a |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
4 | |
d5a4de48 |
5 | use Test::Requires 'B:Compiling'; |
6 | plan tests => 5; |
9bd5658a |
7 | |
8 | my @lines; |
9 | |
10 | |
11 | sub handle_fun { |
12 | my $pack = shift; |
13 | |
14 | push @lines, PL_compiling->line; |
15 | |
16 | my $offset = Devel::Declare::get_linestr_offset(); |
17 | $offset += Devel::Declare::toke_move_past_token($offset); |
18 | my $stripped = Devel::Declare::toke_skipspace($offset); |
19 | my $linestr = Devel::Declare::get_linestr(); |
20 | |
21 | push @lines, PL_compiling->line; |
22 | } |
23 | |
24 | |
25 | use Devel::Declare; |
26 | BEGIN { |
27 | sub fun(&) {} |
28 | |
29 | Devel::Declare->setup_for( |
30 | __PACKAGE__, |
31 | { fun => { const => \&handle_fun } } |
32 | ); |
33 | } |
34 | |
35 | |
36 | #line 100 |
b0361eef |
37 | fun |
9bd5658a |
38 | { }; |
39 | my $line = __LINE__; |
40 | my $line2 = __LINE__; |
41 | |
42 | # Reset the line number back to what it actually is |
43 | #line 48 |
44 | is(@lines, 2, "2 line numbers recorded"); |
45 | is $lines[0], 100, "fun starts on line 100"; |
2688337b |
46 | is $lines[1], 101, "fun stops on line 101"; |
47 | is $line, 102, "next statement on line 102"; |
48 | is $line2, 103, "next statement on line 103"; |