| Filename | /Users/dde/perl5/perlbrew/perls/5.18.0t/lib/site_perl/5.18.0/darwin-thread-multi-2level/Moose/Meta/Attribute/Native/Trait.pm |
| Statements | Executed 861 statements in 2.74ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 52 | 2 | 1 | 655µs | 151ms | Moose::Meta::Attribute::Native::Trait::_native_accessor_class_for |
| 4 | 1 | 1 | 215µs | 149ms | Moose::Meta::Attribute::Native::Trait::_check_handles_values |
| 52 | 1 | 1 | 81µs | 81µs | Moose::Meta::Attribute::Native::Trait::_canonicalize_handles_value |
| 26 | 1 | 1 | 64µs | 84µs | Moose::Meta::Attribute::Native::Trait::_root_types |
| 4 | 1 | 1 | 56µs | 1.76ms | Moose::Meta::Attribute::Native::Trait::_check_helper_type |
| 4 | 1 | 1 | 54µs | 249µs | Moose::Meta::Attribute::Native::Trait::_build_native_type |
| 4 | 1 | 1 | 11µs | 11µs | Moose::Meta::Attribute::Native::Trait::CORE:match (opcode) |
| 1 | 1 | 1 | 9µs | 9µs | Moose::Meta::Attribute::Native::Trait::BEGIN@3 |
| 1 | 1 | 1 | 8µs | 14µs | Moose::Meta::Attribute::Native::Trait::BEGIN@13 |
| 1 | 1 | 1 | 8µs | 1.31ms | Moose::Meta::Attribute::Native::Trait::BEGIN@15 |
| 1 | 1 | 1 | 8µs | 30µs | Moose::Meta::Attribute::Native::Trait::BEGIN@11 |
| 1 | 1 | 1 | 8µs | 30µs | Moose::Meta::Attribute::Native::Trait::BEGIN@12 |
| 1 | 1 | 1 | 8µs | 76µs | Moose::Meta::Attribute::Native::Trait::BEGIN@230 |
| 1 | 1 | 1 | 7µs | 76µs | Moose::Meta::Attribute::Native::Trait::BEGIN@231 |
| 1 | 1 | 1 | 7µs | 89µs | Moose::Meta::Attribute::Native::Trait::BEGIN@14 |
| 1 | 1 | 1 | 7µs | 1.82ms | Moose::Meta::Attribute::Native::Trait::BEGIN@9 |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Attribute::Native::Trait::__ANON__[:122] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Attribute::Native::Trait::__ANON__[:155] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Attribute::Native::Trait::__ANON__[:190] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Attribute::Native::Trait::__ANON__[:30] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Attribute::Native::Trait::__ANON__[:41] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Attribute::Native::Trait::__ANON__[:55] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Attribute::Native::Trait::__ANON__[:84] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Attribute::Native::Trait::__ANON__[:87] |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | |||||
| 2 | package Moose::Meta::Attribute::Native::Trait; | ||||
| 3 | # spent 9µs within Moose::Meta::Attribute::Native::Trait::BEGIN@3 which was called:
# once (9µs+0s) by Module::Runtime::require_module at line 5 | ||||
| 4 | 1 | 4µs | $Moose::Meta::Attribute::Native::Trait::AUTHORITY = 'cpan:STEVAN'; | ||
| 5 | 1 | 28µs | 1 | 9µs | } # spent 9µs making 1 call to Moose::Meta::Attribute::Native::Trait::BEGIN@3 |
| 6 | { | ||||
| 7 | 2 | 700ns | $Moose::Meta::Attribute::Native::Trait::VERSION = '2.1005'; | ||
| 8 | } | ||||
| 9 | 2 | 33µs | 2 | 3.63ms | # spent 1.82ms (7µs+1.81) within Moose::Meta::Attribute::Native::Trait::BEGIN@9 which was called:
# once (7µs+1.81ms) by Module::Runtime::require_module at line 9 # spent 1.82ms making 1 call to Moose::Meta::Attribute::Native::Trait::BEGIN@9
# spent 1.81ms making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:519] |
| 10 | |||||
| 11 | 2 | 27µs | 2 | 53µs | # spent 30µs (8+22) within Moose::Meta::Attribute::Native::Trait::BEGIN@11 which was called:
# once (8µs+22µs) by Module::Runtime::require_module at line 11 # spent 30µs making 1 call to Moose::Meta::Attribute::Native::Trait::BEGIN@11
# spent 22µs making 1 call to Exporter::import |
| 12 | 2 | 23µs | 2 | 52µs | # spent 30µs (8+22) within Moose::Meta::Attribute::Native::Trait::BEGIN@12 which was called:
# once (8µs+22µs) by Module::Runtime::require_module at line 12 # spent 30µs making 1 call to Moose::Meta::Attribute::Native::Trait::BEGIN@12
# spent 22µs making 1 call to Exporter::import |
| 13 | 2 | 25µs | 2 | 19µs | # spent 14µs (8+5) within Moose::Meta::Attribute::Native::Trait::BEGIN@13 which was called:
# once (8µs+5µs) by Module::Runtime::require_module at line 13 # spent 14µs making 1 call to Moose::Meta::Attribute::Native::Trait::BEGIN@13
# spent 5µs making 1 call to Package::DeprecationManager::__ANON__[Package/DeprecationManager.pm:61] |
| 14 | 2 | 24µs | 2 | 171µs | # spent 89µs (7+82) within Moose::Meta::Attribute::Native::Trait::BEGIN@14 which was called:
# once (7µs+82µs) by Module::Runtime::require_module at line 14 # spent 89µs making 1 call to Moose::Meta::Attribute::Native::Trait::BEGIN@14
# spent 82µs making 1 call to Sub::Exporter::__ANON__[Sub/Exporter.pm:337] |
| 15 | 2 | 924µs | 2 | 2.61ms | # spent 1.31ms (8µs+1.30) within Moose::Meta::Attribute::Native::Trait::BEGIN@15 which was called:
# once (8µs+1.30ms) by Module::Runtime::require_module at line 15 # spent 1.31ms making 1 call to Moose::Meta::Attribute::Native::Trait::BEGIN@15
# spent 1.30ms making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:519] |
| 16 | |||||
| 17 | 1 | 1µs | 1 | 47µs | requires '_helper_type'; # spent 47µs making 1 call to Moose::Role::requires |
| 18 | |||||
| 19 | 1 | 1µs | 1 | 85µs | has _used_default_is => ( # spent 85µs making 1 call to Moose::Role::has |
| 20 | is => 'rw', | ||||
| 21 | isa => 'Bool', | ||||
| 22 | default => 0, | ||||
| 23 | ); | ||||
| 24 | |||||
| 25 | before '_process_options' => sub { | ||||
| 26 | 4 | 2µs | my ( $self, $name, $options ) = @_; | ||
| 27 | |||||
| 28 | 4 | 5µs | 4 | 1.76ms | $self->_check_helper_type( $options, $name ); # spent 1.76ms making 4 calls to Moose::Meta::Attribute::Native::Trait::_check_helper_type, avg 440µs/call |
| 29 | |||||
| 30 | 17 | 70µs | 7 | 25µs | if ( !( any { exists $options->{$_} } qw( is reader writer accessor ) ) # spent 15µs making 4 calls to List::MoreUtils::any, avg 4µs/call
# spent 10µs making 3 calls to UNIVERSAL::can, avg 3µs/call |
| 31 | && $self->can('_default_is') ) { | ||||
| 32 | |||||
| 33 | $options->{is} = $self->_default_is; | ||||
| 34 | |||||
| 35 | $options->{_used_default_is} = 1; | ||||
| 36 | } | ||||
| 37 | |||||
| 38 | 4 | 11µs | 4 | 7µs | if ( # spent 7µs making 4 calls to List::MoreUtils::any, avg 2µs/call |
| 39 | !( | ||||
| 40 | $options->{required} | ||||
| 41 | 4 | 23µs | || any { exists $options->{$_} } qw( default builder lazy_build ) | ||
| 42 | ) | ||||
| 43 | && $self->can('_default_default') | ||||
| 44 | ) { | ||||
| 45 | |||||
| 46 | $options->{default} = $self->_default_default; | ||||
| 47 | |||||
| 48 | Moose::Deprecated::deprecated( | ||||
| 49 | feature => 'default default for Native Trait', | ||||
| 50 | message => | ||||
| 51 | 'Allowing a native trait to automatically supply a default is deprecated.' | ||||
| 52 | . ' You can avoid this warning by supplying a default, builder, or making the attribute required' | ||||
| 53 | ); | ||||
| 54 | } | ||||
| 55 | 1 | 4µs | 1 | 52µs | }; # spent 52µs making 1 call to Moose::Role::before |
| 56 | |||||
| 57 | after 'install_accessors' => sub { | ||||
| 58 | 4 | 900ns | my $self = shift; | ||
| 59 | |||||
| 60 | 4 | 13µs | 4 | 8µs | return unless $self->_used_default_is; # spent 8µs making 4 calls to Moose::Meta::Class::__ANON__::SERIAL::1::_used_default_is, avg 2µs/call |
| 61 | |||||
| 62 | my @methods | ||||
| 63 | = $self->_default_is eq 'rw' | ||||
| 64 | ? qw( reader writer accessor ) | ||||
| 65 | : 'reader'; | ||||
| 66 | |||||
| 67 | my $name = $self->name; | ||||
| 68 | my $class = $self->associated_class->name; | ||||
| 69 | |||||
| 70 | for my $meth ( uniq grep {defined} map { $self->$_ } @methods ) { | ||||
| 71 | |||||
| 72 | my $message | ||||
| 73 | = "The $meth method in the $class class was automatically created" | ||||
| 74 | . " by the native delegation trait for the $name attribute." | ||||
| 75 | . q{ This "default is" feature is deprecated.} | ||||
| 76 | . q{ Explicitly set "is" or define accessor names to avoid this}; | ||||
| 77 | |||||
| 78 | $self->associated_class->add_before_method_modifier( | ||||
| 79 | $meth => sub { | ||||
| 80 | Moose::Deprecated::deprecated( | ||||
| 81 | feature => 'default is for Native Trait', | ||||
| 82 | message =>$message, | ||||
| 83 | ); | ||||
| 84 | } | ||||
| 85 | ); | ||||
| 86 | } | ||||
| 87 | 1 | 3µs | 1 | 40µs | }; # spent 40µs making 1 call to Moose::Role::after |
| 88 | |||||
| 89 | # spent 1.76ms (56µs+1.70) within Moose::Meta::Attribute::Native::Trait::_check_helper_type which was called 4 times, avg 440µs/call:
# 4 times (56µs+1.70ms) by Class::MOP::Class:::before at line 28, avg 440µs/call | ||||
| 90 | 4 | 1µs | my ( $self, $options, $name ) = @_; | ||
| 91 | |||||
| 92 | 4 | 5µs | 4 | 3µs | my $type = $self->_helper_type; # spent 3µs making 4 calls to Moose::Meta::Attribute::Native::Trait::Array::_helper_type, avg 825ns/call |
| 93 | |||||
| 94 | 4 | 2µs | $options->{isa} = $type | ||
| 95 | unless exists $options->{isa}; | ||||
| 96 | |||||
| 97 | 4 | 200ns | my $isa; | ||
| 98 | 4 | 100ns | my $isa_name; | ||
| 99 | |||||
| 100 | 4 | 5µs | 4 | 136µs | if ( # spent 136µs making 4 calls to Moose::Util::does_role, avg 34µs/call |
| 101 | Moose::Util::does_role( | ||||
| 102 | $options->{isa}, 'Specio::Constraint::Role::Interface' | ||||
| 103 | ) | ||||
| 104 | ) { | ||||
| 105 | |||||
| 106 | $isa = $options->{isa}; | ||||
| 107 | require Specio::Library::Builtins; | ||||
| 108 | return if $isa->is_a_type_of( Specio::Library::Builtins::t($type) ); | ||||
| 109 | $isa_name = $isa->name() || $isa->description(); | ||||
| 110 | } | ||||
| 111 | else { | ||||
| 112 | 4 | 7µs | 4 | 1.36ms | $isa = Moose::Util::TypeConstraints::find_or_create_type_constraint( # spent 1.36ms making 4 calls to Moose::Util::TypeConstraints::find_or_create_type_constraint, avg 339µs/call |
| 113 | $options->{isa} ); | ||||
| 114 | 4 | 20µs | 4 | 208µs | return if $isa->is_a_type_of($type); # spent 208µs making 4 calls to Moose::Meta::TypeConstraint::is_a_type_of, avg 52µs/call |
| 115 | $isa_name = $isa->name(); | ||||
| 116 | } | ||||
| 117 | |||||
| 118 | confess | ||||
| 119 | "The type constraint for $name must be a subtype of $type but it's a $isa_name"; | ||||
| 120 | } | ||||
| 121 | |||||
| 122 | 5 | 14µs | 5 | 149ms | before 'install_accessors' => sub { (shift)->_check_handles_values }; # spent 149ms making 4 calls to Moose::Meta::Attribute::Native::Trait::_check_handles_values, avg 37.3ms/call
# spent 29µs making 1 call to Moose::Role::before |
| 123 | |||||
| 124 | # spent 149ms (215µs+149) within Moose::Meta::Attribute::Native::Trait::_check_handles_values which was called 4 times, avg 37.3ms/call:
# 4 times (215µs+149ms) by Class::MOP::Class:::before at line 122, avg 37.3ms/call | ||||
| 125 | 4 | 900ns | my $self = shift; | ||
| 126 | |||||
| 127 | 4 | 11µs | 4 | 166µs | my %handles = $self->_canonicalize_handles; # spent 166µs making 4 calls to Moose::Meta::Class::__ANON__::SERIAL::1::_canonicalize_handles, avg 41µs/call |
| 128 | |||||
| 129 | 4 | 19µs | for my $original_method ( values %handles ) { | ||
| 130 | 26 | 8µs | my $name = $original_method->[0]; | ||
| 131 | |||||
| 132 | 26 | 46µs | 26 | 149ms | my $accessor_class = $self->_native_accessor_class_for($name); # spent 149ms making 26 calls to Moose::Meta::Attribute::Native::Trait::_native_accessor_class_for, avg 5.72ms/call |
| 133 | |||||
| 134 | 26 | 134µs | 26 | 39µs | ( $accessor_class && $accessor_class->can('new') ) # spent 39µs making 26 calls to UNIVERSAL::can, avg 1µs/call |
| 135 | || confess | ||||
| 136 | "$name is an unsupported method type - $accessor_class"; | ||||
| 137 | } | ||||
| 138 | } | ||||
| 139 | |||||
| 140 | around '_canonicalize_handles' => sub { | ||||
| 141 | 8 | 300ns | shift; | ||
| 142 | 8 | 1µs | my $self = shift; | ||
| 143 | 8 | 14µs | 8 | 13µs | my $handles = $self->handles; # spent 13µs making 8 calls to Moose::Meta::Mixin::AttributeCore::handles, avg 2µs/call |
| 144 | |||||
| 145 | 8 | 1µs | return unless $handles; | ||
| 146 | |||||
| 147 | 8 | 4µs | unless ( 'HASH' eq ref $handles ) { | ||
| 148 | $self->throw_error( | ||||
| 149 | "The 'handles' option must be a HASH reference, not $handles"); | ||||
| 150 | } | ||||
| 151 | |||||
| 152 | return | ||||
| 153 | 8 | 76µs | 52 | 81µs | map { $_ => $self->_canonicalize_handles_value( $handles->{$_} ) } # spent 81µs making 52 calls to Moose::Meta::Attribute::Native::Trait::_canonicalize_handles_value, avg 2µs/call |
| 154 | keys %$handles; | ||||
| 155 | 1 | 2µs | 1 | 39µs | }; # spent 39µs making 1 call to Moose::Role::around |
| 156 | |||||
| 157 | # spent 81µs within Moose::Meta::Attribute::Native::Trait::_canonicalize_handles_value which was called 52 times, avg 2µs/call:
# 52 times (81µs+0s) by Class::MOP::Class:::around at line 153, avg 2µs/call | ||||
| 158 | 52 | 6µs | my $self = shift; | ||
| 159 | 52 | 6µs | my $value = shift; | ||
| 160 | |||||
| 161 | 52 | 2µs | if ( ref $value && 'ARRAY' ne ref $value ) { | ||
| 162 | $self->throw_error( | ||||
| 163 | "All values passed to handles must be strings or ARRAY references, not $value" | ||||
| 164 | ); | ||||
| 165 | } | ||||
| 166 | |||||
| 167 | 52 | 103µs | return ref $value ? $value : [$value]; | ||
| 168 | } | ||||
| 169 | |||||
| 170 | around '_make_delegation_method' => sub { | ||||
| 171 | 26 | 3µs | my $next = shift; | ||
| 172 | 26 | 7µs | my ( $self, $handle_name, $method_to_call ) = @_; | ||
| 173 | |||||
| 174 | 26 | 11µs | my ( $name, @curried_args ) = @$method_to_call; | ||
| 175 | |||||
| 176 | 26 | 42µs | 26 | 2.46ms | my $accessor_class = $self->_native_accessor_class_for($name); # spent 2.46ms making 26 calls to Moose::Meta::Attribute::Native::Trait::_native_accessor_class_for, avg 94µs/call |
| 177 | |||||
| 178 | 26 | 90µs | 26 | 44µs | die "Cannot find an accessor class for $name" # spent 44µs making 26 calls to UNIVERSAL::can, avg 2µs/call |
| 179 | unless $accessor_class && $accessor_class->can('new'); | ||||
| 180 | |||||
| 181 | 26 | 196µs | 104 | 34.6ms | return $accessor_class->new( # spent 8.53ms making 5 calls to Moose::Meta::Class::__ANON__::SERIAL::4::new, avg 1.71ms/call
# spent 5.94ms making 4 calls to Moose::Meta::Class::__ANON__::SERIAL::3::new, avg 1.49ms/call
# spent 4.86ms making 4 calls to Moose::Meta::Class::__ANON__::SERIAL::2::new, avg 1.21ms/call
# spent 4.61ms making 4 calls to Moose::Meta::Class::__ANON__::SERIAL::5::new, avg 1.15ms/call
# spent 4.53ms making 4 calls to Moose::Meta::Class::__ANON__::SERIAL::6::new, avg 1.13ms/call
# spent 4.22ms making 4 calls to Moose::Meta::Class::__ANON__::SERIAL::7::new, avg 1.06ms/call
# spent 1.85ms making 1 call to Moose::Meta::Class::__ANON__::SERIAL::8::new
# spent 84µs making 26 calls to Moose::Meta::Attribute::Native::Trait::_root_types, avg 3µs/call
# spent 17µs making 26 calls to Class::MOP::Attribute::associated_class, avg 638ns/call
# spent 11µs making 26 calls to Class::MOP::Package::name, avg 408ns/call |
| 182 | name => $handle_name, | ||||
| 183 | package_name => $self->associated_class->name, | ||||
| 184 | delegate_to_method => $name, | ||||
| 185 | attribute => $self, | ||||
| 186 | is_inline => 1, | ||||
| 187 | curried_arguments => \@curried_args, | ||||
| 188 | root_types => [ $self->_root_types ], | ||||
| 189 | ); | ||||
| 190 | 1 | 3µs | 1 | 3.35ms | }; # spent 3.35ms making 1 call to Moose::Role::around |
| 191 | |||||
| 192 | # spent 84µs (64+19) within Moose::Meta::Attribute::Native::Trait::_root_types which was called 26 times, avg 3µs/call:
# 26 times (64µs+19µs) by Class::MOP::Class:::around at line 181, avg 3µs/call | ||||
| 193 | 26 | 50µs | 26 | 19µs | return $_[0]->_helper_type; # spent 19µs making 26 calls to Moose::Meta::Attribute::Native::Trait::Array::_helper_type, avg 735ns/call |
| 194 | } | ||||
| 195 | |||||
| 196 | # spent 151ms (655µs+151) within Moose::Meta::Attribute::Native::Trait::_native_accessor_class_for which was called 52 times, avg 2.91ms/call:
# 26 times (336µs+148ms) by Moose::Meta::Attribute::Native::Trait::_check_handles_values at line 132, avg 5.72ms/call
# 26 times (319µs+2.14ms) by Class::MOP::Class:::around at line 176, avg 94µs/call | ||||
| 197 | 52 | 11µs | my ( $self, $suffix ) = @_; | ||
| 198 | |||||
| 199 | 52 | 60µs | 52 | 371µs | my $role # spent 371µs making 52 calls to Moose::Meta::Class::__ANON__::SERIAL::1::_native_type, avg 7µs/call |
| 200 | = 'Moose::Meta::Method::Accessor::Native::' | ||||
| 201 | . $self->_native_type . '::' | ||||
| 202 | . $suffix; | ||||
| 203 | |||||
| 204 | 52 | 36µs | 52 | 91.1ms | load_class($role); # spent 91.1ms making 52 calls to Class::Load::load_class, avg 1.75ms/call |
| 205 | 52 | 381µs | 208 | 59.1ms | return Moose::Meta::Class->create_anon_class( # spent 58.9ms making 52 calls to Class::MOP::Class::create_anon_class, avg 1.13ms/call
# spent 51µs making 52 calls to Moose::Meta::Attribute::accessor_metaclass, avg 983ns/call
# spent 39µs making 52 calls to Class::MOP::Package::name, avg 754ns/call
# spent 36µs making 52 calls to Moose::Meta::Attribute::delegation_metaclass, avg 687ns/call |
| 206 | superclasses => | ||||
| 207 | [ $self->accessor_metaclass, $self->delegation_metaclass ], | ||||
| 208 | roles => [$role], | ||||
| 209 | cache => 1, | ||||
| 210 | )->name; | ||||
| 211 | } | ||||
| 212 | |||||
| 213 | # spent 249µs (54+195) within Moose::Meta::Attribute::Native::Trait::_build_native_type which was called 4 times, avg 62µs/call:
# 4 times (54µs+195µs) by Moose::Meta::Class::__ANON__::SERIAL::1::_native_type at line 11 of (eval 74)[Eval/Closure.pm:135], avg 62µs/call | ||||
| 214 | 4 | 700ns | my $self = shift; | ||
| 215 | |||||
| 216 | 12 | 27µs | 16 | 184µs | for my $role_name ( map { $_->name } $self->meta->calculate_all_roles ) { # spent 146µs making 4 calls to Moose::Meta::Class::calculate_all_roles, avg 37µs/call
# spent 34µs making 4 calls to Moose::Meta::Class::__ANON__::SERIAL::1::meta, avg 8µs/call
# spent 4µs making 8 calls to Class::MOP::Package::name, avg 475ns/call |
| 217 | 4 | 34µs | 4 | 11µs | return $1 if $role_name =~ /::Native::Trait::(\w+)$/; # spent 11µs making 4 calls to Moose::Meta::Attribute::Native::Trait::CORE:match, avg 3µs/call |
| 218 | } | ||||
| 219 | |||||
| 220 | die "Cannot calculate native type for " . ref $self; | ||||
| 221 | } | ||||
| 222 | |||||
| 223 | 1 | 1µs | 1 | 82µs | has '_native_type' => ( # spent 82µs making 1 call to Moose::Role::has |
| 224 | is => 'ro', | ||||
| 225 | isa => 'Str', | ||||
| 226 | lazy => 1, | ||||
| 227 | builder => '_build_native_type', | ||||
| 228 | ); | ||||
| 229 | |||||
| 230 | 2 | 25µs | 2 | 145µs | # spent 76µs (8+69) within Moose::Meta::Attribute::Native::Trait::BEGIN@230 which was called:
# once (8µs+69µs) by Module::Runtime::require_module at line 230 # spent 76µs making 1 call to Moose::Meta::Attribute::Native::Trait::BEGIN@230
# spent 69µs making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:706] |
| 231 | 2 | 36µs | 2 | 145µs | # spent 76µs (7+69) within Moose::Meta::Attribute::Native::Trait::BEGIN@231 which was called:
# once (7µs+69µs) by Module::Runtime::require_module at line 231 # spent 76µs making 1 call to Moose::Meta::Attribute::Native::Trait::BEGIN@231
# spent 69µs making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:706] |
| 232 | |||||
| 233 | 1 | 17µs | 1; | ||
| 234 | |||||
| 235 | # ABSTRACT: Shared role for native delegation traits | ||||
| 236 | |||||
| 237 | __END__ | ||||
# spent 11µs within Moose::Meta::Attribute::Native::Trait::CORE:match which was called 4 times, avg 3µs/call:
# 4 times (11µs+0s) by Moose::Meta::Attribute::Native::Trait::_build_native_type at line 217, avg 3µs/call |