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.2203';
3              
4 3     3   1921 use strict;
  3         8  
  3         97  
5 3     3   16 use warnings;
  3         8  
  3         124  
6              
7 3     3   19 use Moose::Role;
  3         6  
  3         25  
8              
9             with 'Moose::Meta::Method::Accessor::Native::Array::Writer';
10              
11 10     10   38 sub _maximum_arguments { 0 }
12              
13 5     5   35 sub _adds_members { 0 }
14              
15             sub _potential_value {
16 10     10   28 my $self = shift;
17 10         31 my ($slot_access) = @_;
18              
19 10         53 return '[ @{ (' . $slot_access . ') } > 1 '
20             . '? @{ (' . $slot_access . ') }[0..$#{ (' . $slot_access . ') } - 1] '
21             . ': () ]';
22             }
23              
24             sub _inline_capture_return_value {
25 10     10   25 my $self = shift;
26 10         38 my ($slot_access) = @_;
27              
28 10         50 return 'my $old = ' . $slot_access . '->[-1];';
29             }
30              
31             sub _inline_optimized_set_new_value {
32 7     7   17 my $self = shift;
33 7         24 my ($inv, $new, $slot_access) = @_;
34              
35 7         41 return 'pop @{ (' . $slot_access . ') };';
36             }
37              
38             sub _return_value {
39 20     20   38 my $self = shift;
40 20         42 my ($slot_access) = @_;
41              
42 20         110 return '$old';
43             }
44              
45 3     3   31 no Moose::Role;
  3         8  
  3         18  
46              
47             1;