File Coverage

blib/lib/Moose/Meta/Method/Accessor/Native/Array/pop.pm
Criterion Covered Total %
statement 26 26 100.0
branch n/a
condition n/a
subroutine 10 10 100.0
pod n/a
total 36 36 100.0


line stmt bran cond sub pod time code
1             package Moose::Meta::Method::Accessor::Native::Array::pop;
2             our $VERSION = '2.2205';
3              
4 3     3   2161 use strict;
  3         9  
  3         103  
5 3     3   18 use warnings;
  3         9  
  3         95  
6              
7 3     3   18 use Moose::Role;
  3         7  
  3         31  
8              
9             with 'Moose::Meta::Method::Accessor::Native::Array::Writer';
10              
11 10     10   32 sub _maximum_arguments { 0 }
12              
13 5     5   44 sub _adds_members { 0 }
14              
15             sub _potential_value {
16 10     10   26 my $self = shift;
17 10         29 my ($slot_access) = @_;
18              
19 10         70 return '[ @{ (' . $slot_access . ') } > 1 '
20             . '? @{ (' . $slot_access . ') }[0..$#{ (' . $slot_access . ') } - 1] '
21             . ': () ]';
22             }
23              
24             sub _inline_capture_return_value {
25 10     10   35 my $self = shift;
26 10         37 my ($slot_access) = @_;
27              
28 10         55 return 'my $old = ' . $slot_access . '->[-1];';
29             }
30              
31             sub _inline_optimized_set_new_value {
32 7     7   20 my $self = shift;
33 7         24 my ($inv, $new, $slot_access) = @_;
34              
35 7         52 return 'pop @{ (' . $slot_access . ') };';
36             }
37              
38             sub _return_value {
39 20     20   48 my $self = shift;
40 20         51 my ($slot_access) = @_;
41              
42 20         85 return '$old';
43             }
44              
45 3     3   26 no Moose::Role;
  3         12  
  3         26  
46              
47             1;