File Coverage

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