File Coverage

blib/lib/invoker.pm
Criterion Covered Total %
statement 32 32 100.0
branch 3 4 75.0
condition n/a
subroutine 8 8 100.0
pod n/a
total 43 44 97.7


line stmt bran cond sub pod time code
1             package invoker;
2              
3 3     3   62119 use strict;
  3         7  
  3         105  
4 3     3   60 use 5.010_001;
  3         10  
  3         104  
5              
6 3     3   2582 use B::Hooks::OP::Check;
  3         9572  
  3         85  
7 3     3   2440 use B::Hooks::EndOfScope;
  3         76301  
  3         25  
8              
9             our $VERSION = "0.34";
10              
11 3     3   10058 use Devel::Declare;
  3         51764  
  3         20  
12             require XSLoader;
13             XSLoader::load(__PACKAGE__, $VERSION);
14              
15             sub import {
16 14     14   28477 my ($class) = @_;
17              
18 14         85 my $parser = Devel::Declare::setup();
19              
20 14         49 my $linestr = Devel::Declare::get_linestr();
21 14         38 my $offset = Devel::Declare::get_linestr_offset();
22 14         40 substr($linestr, $offset, 0) = 'use B::OPCheck const => check => \&invoker::_check;';
23 14         35 Devel::Declare::set_linestr($linestr);
24              
25 14         126 my $hook = $class->setup;
26              
27             on_scope_end {
28 14     14   160 $class->teardown($hook);
29 14         93 };
30              
31 14         792 return;
32             }
33              
34             sub _check {
35 42     42   47075 my $op = shift;
36 42 50       365 return unless ref($op->gv) eq 'B::PV';
37              
38 42         175 my $linestr = Devel::Declare::get_linestr;
39 42         83 my $offset = Devel::Declare::get_linestr_offset;
40              
41 42 100       629 if (substr($linestr, $offset-2, 3) eq '$->') {
42 14         29 substr($linestr, $offset-2, 3) = '$-->';
43 14         277 Devel::Declare::set_linestr($linestr);
44             }
45             }
46              
47             1;
48             __END__