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