← Index
NYTProf Performance Profile   « line view »
For /home/ss5/perl5/perlbrew/perls/perl-5.22.0/bin/benchmarkanything-storage
  Run on Mon Jan 29 16:55:34 2018
Reported on Mon Jan 29 16:57:07 2018

Filename/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/x86_64-linux/Moose/Meta/TypeCoercion/Union.pm
StatementsExecuted 14 statements in 264µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11113µs17µsMoose::Meta::TypeCoercion::Union::::BEGIN@4Moose::Meta::TypeCoercion::Union::BEGIN@4
1119µs47µsMoose::Meta::TypeCoercion::Union::::BEGIN@8Moose::Meta::TypeCoercion::Union::BEGIN@8
1117µs13µsMoose::Meta::TypeCoercion::Union::::BEGIN@5Moose::Meta::TypeCoercion::Union::BEGIN@5
1116µs187µsMoose::Meta::TypeCoercion::Union::::BEGIN@12Moose::Meta::TypeCoercion::Union::BEGIN@12
1116µs30µsMoose::Meta::TypeCoercion::Union::::BEGIN@10Moose::Meta::TypeCoercion::Union::BEGIN@10
1115µs402µsMoose::Meta::TypeCoercion::Union::::BEGIN@6Moose::Meta::TypeCoercion::Union::BEGIN@6
0000s0sMoose::Meta::TypeCoercion::Union::::__ANON__[:34]Moose::Meta::TypeCoercion::Union::__ANON__[:34]
0000s0sMoose::Meta::TypeCoercion::Union::::add_type_coercionsMoose::Meta::TypeCoercion::Union::add_type_coercions
0000s0sMoose::Meta::TypeCoercion::Union::::compile_type_coercionMoose::Meta::TypeCoercion::Union::compile_type_coercion
0000s0sMoose::Meta::TypeCoercion::Union::::has_coercion_for_typeMoose::Meta::TypeCoercion::Union::has_coercion_for_type
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Moose::Meta::TypeCoercion::Union;
21300nsour $VERSION = '2.1605';
3
4217µs221µs
# spent 17µs (13+4) within Moose::Meta::TypeCoercion::Union::BEGIN@4 which was called: # once (13µs+4µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 4
use strict;
# spent 17µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@4 # spent 4µs making 1 call to strict::import
5214µs220µs
# spent 13µs (7+6) within Moose::Meta::TypeCoercion::Union::BEGIN@5 which was called: # once (7µs+6µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 5
use warnings;
# spent 13µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@5 # spent 6µs making 1 call to warnings::import
6229µs2799µs
# spent 402µs (5+397) within Moose::Meta::TypeCoercion::Union::BEGIN@6 which was called: # once (5µs+397µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 6
use metaclass;
# spent 402µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@6 # spent 397µs making 1 call to metaclass::import
7
8221µs285µs
# spent 47µs (9+38) within Moose::Meta::TypeCoercion::Union::BEGIN@8 which was called: # once (9µs+38µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 8
use Scalar::Util 'blessed';
# spent 47µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@8 # spent 38µs making 1 call to Exporter::import
9
10220µs255µs
# spent 30µs (6+25) within Moose::Meta::TypeCoercion::Union::BEGIN@10 which was called: # once (6µs+25µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 10
use parent 'Moose::Meta::TypeCoercion';
# spent 30µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@10 # spent 25µs making 1 call to parent::import
11
122160µs2368µs
# spent 187µs (6+181) within Moose::Meta::TypeCoercion::Union::BEGIN@12 which was called: # once (6µs+181µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 12
use Moose::Util 'throw_exception';
# spent 187µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@12 # spent 181µs making 1 call to Sub::Exporter::__ANON__[Sub/Exporter.pm:337]
13
14sub compile_type_coercion {
15 my $self = shift;
16 my $type_constraint = $self->type_constraint;
17
18 (blessed $type_constraint && $type_constraint->isa('Moose::Meta::TypeConstraint::Union'))
19 || throw_exception( NeedsTypeConstraintUnionForTypeCoercionUnion => type_coercion_union_object => $self,
20 type_name => $type_constraint->name
21 );
22
23 $self->_compiled_type_coercion(
24 sub {
25 my $value = shift;
26
27 foreach my $type ( grep { $_->has_coercion }
28 @{ $type_constraint->type_constraints } ) {
29 my $temp = $type->coerce($value);
30 return $temp if $type_constraint->check($temp);
31 }
32
33 return $value;
34 }
35 );
36}
37
38sub has_coercion_for_type { 0 }
39
40sub add_type_coercions {
41 my $self = shift;
42 throw_exception( CannotAddAdditionalTypeCoercionsToUnion => type_coercion_union_object => $self );
43}
44
4512µs1;
46
47# ABSTRACT: The Moose Type Coercion metaclass for Unions
48
49__END__