Profile of Moose/Meta/TypeCoercion/Union.pm

← Index
NYTProf Performance Profile «line view»
For script/ponapi
Run on Wed Feb 10 15:51:26 2016
Reported on Thu Feb 11 09:43:10 2016

Filename | /usr/local/lib/perl/5.18.2/Moose/Meta/TypeCoercion/Union.pm
Statements | Executed 14 statements in 274µs

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
1 | 1 | 1 | 10µs | 27µs | Moose::Meta::TypeCoercion::Union::::BEGIN@10Moose::Meta::TypeCoercion::Union::BEGIN@10
1 | 1 | 1 | 9µs | 18µs | Moose::Meta::TypeCoercion::Union::::BEGIN@4Moose::Meta::TypeCoercion::Union::BEGIN@4
1 | 1 | 1 | 7µs | 27µs | Moose::Meta::TypeCoercion::Union::::BEGIN@8Moose::Meta::TypeCoercion::Union::BEGIN@8
1 | 1 | 1 | 6µs | 326µs | Moose::Meta::TypeCoercion::Union::::BEGIN@6Moose::Meta::TypeCoercion::Union::BEGIN@6
1 | 1 | 1 | 6µs | 9µs | Moose::Meta::TypeCoercion::Union::::BEGIN@5Moose::Meta::TypeCoercion::Union::BEGIN@5
1 | 1 | 1 | 6µs | 111µs | Moose::Meta::TypeCoercion::Union::::BEGIN@12Moose::Meta::TypeCoercion::Union::BEGIN@12
0 | 0 | 0 | 0s | 0s | Moose::Meta::TypeCoercion::Union::::__ANON__[:34]Moose::Meta::TypeCoercion::Union::__ANON__[:34]
0 | 0 | 0 | 0s | 0s | Moose::Meta::TypeCoercion::Union::::add_type_coercionsMoose::Meta::TypeCoercion::Union::add_type_coercions
0 | 0 | 0 | 0s | 0s | Moose::Meta::TypeCoercion::Union::::compile_type_coercionMoose::Meta::TypeCoercion::Union::compile_type_coercion
0 | 0 | 0 | 0s | 0s | Moose::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
--- | --- | --- | --- | --- | ---
1 |  |  |  |  | package Moose::Meta::TypeCoercion::Union;
2 | 1 | 500ns |  |  | our $VERSION = '2.1604';
3 |  |  |  |  |
4 | 2 | 19µs | 2 | 27µs | # spent 18µs (9+9) within Moose::Meta::TypeCoercion::Union::BEGIN@4 which was called: # once (9µs+9µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 4 use strict; # spent 18µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@4 # spent 9µs making 1 call to strict::import
5 | 2 | 19µs | 2 | 12µs | # spent 9µs (6+3) within Moose::Meta::TypeCoercion::Union::BEGIN@5 which was called: # once (6µs+3µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 5 use warnings; # spent 9µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@5 # spent 3µs making 1 call to warnings::import
6 | 2 | 26µs | 2 | 647µs | # spent 326µs (6+321) within Moose::Meta::TypeCoercion::Union::BEGIN@6 which was called: # once (6µs+321µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 6 use metaclass; # spent 326µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@6 # spent 320µs making 1 call to metaclass::import
7 |  |  |  |  |
8 | 2 | 21µs | 2 | 47µs | # spent 27µs (7+20) within Moose::Meta::TypeCoercion::Union::BEGIN@8 which was called: # once (7µs+20µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 8 use Scalar::Util 'blessed'; # spent 27µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@8 # spent 20µs making 1 call to Exporter::import
9 |  |  |  |  |
10 | 2 | 22µs | 2 | 45µs | # spent 27µs (10+18) within Moose::Meta::TypeCoercion::Union::BEGIN@10 which was called: # once (10µs+18µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 10 use parent 'Moose::Meta::TypeCoercion'; # spent 27µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@10 # spent 18µs making 1 call to parent::import
11 |  |  |  |  |
12 | 2 | 164µs | 2 | 216µs | # spent 111µs (6+105) within Moose::Meta::TypeCoercion::Union::BEGIN@12 which was called: # once (6µs+105µs) by Moose::Meta::TypeConstraint::Union::BEGIN@8 at line 12 use Moose::Util 'throw_exception'; # spent 111µs making 1 call to Moose::Meta::TypeCoercion::Union::BEGIN@12 # spent 105µs making 1 call to Sub::Exporter::__ANON__[Sub/Exporter.pm:337]
13 |  |  |  |  |
14 |  |  |  |  | sub 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 |  |  |  |  |
38 |  |  |  |  | sub has_coercion_for_type { 0 }
39 |  |  |  |  |
40 |  |  |  |  | sub add_type_coercions {
41 |  |  |  |  | my $self = shift;
42 |  |  |  |  | throw_exception( CannotAddAdditionalTypeCoercionsToUnion => type_coercion_union_object => $self );
43 |  |  |  |  | }
44 |  |  |  |  |
45 | 1 | 2µs |  |  | 1;
46 |  |  |  |  |
47 |  |  |  |  | # ABSTRACT: The Moose Type Coercion metaclass for Unions
48 |  |  |  |  |
49 |  |  |  |  | __END__