Profile of Moose/Util/TypeConstraints/Builtins.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:11 2016

Filename | /usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm
Statements | Executed 655 statements in 3.77ms

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
75 | 1 | 1 | 414µs | 1.89ms | Moose::Util::TypeConstraints::Builtins::::__ANON__[:60]Moose::Util::TypeConstraints::Builtins::__ANON__[:60]
60 | 1 | 1 | 400µs | 3.09ms | Moose::Util::TypeConstraints::Builtins::::__ANON__[:77]Moose::Util::TypeConstraints::Builtins::__ANON__[:77]
1 | 1 | 1 | 396µs | 6.24ms | Moose::Util::TypeConstraints::Builtins::::define_builtinsMoose::Util::TypeConstraints::Builtins::define_builtins
20 | 1 | 1 | 135µs | 1.10ms | Moose::Util::TypeConstraints::Builtins::::__ANON__[:231]Moose::Util::TypeConstraints::Builtins::__ANON__[:231]
58 | 1 | 1 | 124µs | 124µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:52]Moose::Util::TypeConstraints::Builtins::__ANON__[:52]
18 | 1 | 1 | 123µs | 822µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:266]Moose::Util::TypeConstraints::Builtins::__ANON__[:266]
76 | 1 | 1 | 104µs | 104µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:40]Moose::Util::TypeConstraints::Builtins::__ANON__[:40]
53 | 1 | 1 | 81µs | 81µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:252]Moose::Util::TypeConstraints::Builtins::__ANON__[:252]
11 | 1 | 1 | 41µs | 468µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:114]Moose::Util::TypeConstraints::Builtins::__ANON__[:114]
22 | 1 | 1 | 33µs | 33µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:217]Moose::Util::TypeConstraints::Builtins::__ANON__[:217]
4 | 1 | 1 | 31µs | 39µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:216]Moose::Util::TypeConstraints::Builtins::__ANON__[:216]
16 | 16 | 1 | 17µs | 17µs | Moose::Util::TypeConstraints::Builtins::::whereMoose::Util::TypeConstraints::Builtins::where
2 | 1 | 1 | 16µs | 20µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:251]Moose::Util::TypeConstraints::Builtins::__ANON__[:251]
16 | 16 | 1 | 15µs | 15µs | Moose::Util::TypeConstraints::Builtins::::asMoose::Util::TypeConstraints::Builtins::as
1 | 1 | 1 | 15µs | 30µs | Moose::Util::TypeConstraints::Builtins::::BEGIN@4Moose::Util::TypeConstraints::Builtins::BEGIN@4
3 | 1 | 1 | 14µs | 144µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:106]Moose::Util::TypeConstraints::Builtins::__ANON__[:106]
16 | 16 | 1 | 12µs | 12µs | Moose::Util::TypeConstraints::Builtins::::subtypeMoose::Util::TypeConstraints::Builtins::subtype
2 | 1 | 1 | 12µs | 119µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:292]Moose::Util::TypeConstraints::Builtins::__ANON__[:292]
17 | 17 | 1 | 12µs | 12µs | Moose::Util::TypeConstraints::Builtins::::inline_asMoose::Util::TypeConstraints::Builtins::inline_as
1 | 1 | 1 | 10µs | 23µs | Moose::Util::TypeConstraints::Builtins::::BEGIN@8Moose::Util::TypeConstraints::Builtins::BEGIN@8
1 | 1 | 1 | 10µs | 17µs | Moose::Util::TypeConstraints::Builtins::::BEGIN@5Moose::Util::TypeConstraints::Builtins::BEGIN@5
1 | 1 | 1 | 9µs | 27µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:170]Moose::Util::TypeConstraints::Builtins::__ANON__[:170]
1 | 1 | 1 | 8µs | 9µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:284]Moose::Util::TypeConstraints::Builtins::__ANON__[:284]
1 | 1 | 1 | 7µs | 43µs | Moose::Util::TypeConstraints::Builtins::::BEGIN@7Moose::Util::TypeConstraints::Builtins::BEGIN@7
1 | 1 | 1 | 6µs | 29µs | Moose::Util::TypeConstraints::Builtins::::BEGIN@9Moose::Util::TypeConstraints::Builtins::BEGIN@9
1 | 1 | 1 | 3µs | 3µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:189]Moose::Util::TypeConstraints::Builtins::__ANON__[:189]
1 | 1 | 1 | 3µs | 3µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:146]Moose::Util::TypeConstraints::Builtins::__ANON__[:146]
2 | 1 | 1 | 2µs | 2µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:157]Moose::Util::TypeConstraints::Builtins::__ANON__[:157]
1 | 1 | 1 | 2µs | 2µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:126]Moose::Util::TypeConstraints::Builtins::__ANON__[:126]
2 | 1 | 1 | 2µs | 2µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:22]Moose::Util::TypeConstraints::Builtins::__ANON__[:22]
1 | 1 | 1 | 1µs | 1µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:119]Moose::Util::TypeConstraints::Builtins::__ANON__[:119]
1 | 1 | 1 | 1µs | 1µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:33]Moose::Util::TypeConstraints::Builtins::__ANON__[:33]
1 | 1 | 1 | 1µs | 1µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:151]Moose::Util::TypeConstraints::Builtins::__ANON__[:151]
1 | 1 | 1 | 1µs | 1µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:285]Moose::Util::TypeConstraints::Builtins::__ANON__[:285]
1 | 1 | 1 | 1µs | 1µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:66]Moose::Util::TypeConstraints::Builtins::__ANON__[:66]
1 | 1 | 1 | 1µs | 1µs | Moose::Util::TypeConstraints::Builtins::::__ANON__[:131]Moose::Util::TypeConstraints::Builtins::__ANON__[:131]
1 | 1 | 1 | 1µs | 1µs | Moose::Util::TypeConstraints::Builtins::::typeMoose::Util::TypeConstraints::Builtins::type
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:110]Moose::Util::TypeConstraints::Builtins::__ANON__[:110]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:118]Moose::Util::TypeConstraints::Builtins::__ANON__[:118]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:130]Moose::Util::TypeConstraints::Builtins::__ANON__[:130]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:140]Moose::Util::TypeConstraints::Builtins::__ANON__[:140]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:150]Moose::Util::TypeConstraints::Builtins::__ANON__[:150]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:155]Moose::Util::TypeConstraints::Builtins::__ANON__[:155]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:163]Moose::Util::TypeConstraints::Builtins::__ANON__[:163]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:178]Moose::Util::TypeConstraints::Builtins::__ANON__[:178]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:184]Moose::Util::TypeConstraints::Builtins::__ANON__[:184]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:185]Moose::Util::TypeConstraints::Builtins::__ANON__[:185]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:196]Moose::Util::TypeConstraints::Builtins::__ANON__[:196]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:206]Moose::Util::TypeConstraints::Builtins::__ANON__[:206]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:215]Moose::Util::TypeConstraints::Builtins::__ANON__[:215]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:21]Moose::Util::TypeConstraints::Builtins::__ANON__[:21]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:241]Moose::Util::TypeConstraints::Builtins::__ANON__[:241]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:250]Moose::Util::TypeConstraints::Builtins::__ANON__[:250]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:26]Moose::Util::TypeConstraints::Builtins::__ANON__[:26]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:276]Moose::Util::TypeConstraints::Builtins::__ANON__[:276]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:283]Moose::Util::TypeConstraints::Builtins::__ANON__[:283]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:30]Moose::Util::TypeConstraints::Builtins::__ANON__[:30]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:37]Moose::Util::TypeConstraints::Builtins::__ANON__[:37]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:44]Moose::Util::TypeConstraints::Builtins::__ANON__[:44]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:56]Moose::Util::TypeConstraints::Builtins::__ANON__[:56]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:64]Moose::Util::TypeConstraints::Builtins::__ANON__[:64]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:70]Moose::Util::TypeConstraints::Builtins::__ANON__[:70]
0 | 0 | 0 | 0s | 0s | Moose::Util::TypeConstraints::Builtins::::__ANON__[:91]Moose::Util::TypeConstraints::Builtins::__ANON__[:91]

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::Util::TypeConstraints::Builtins;
2 | 1 | 700ns |  |  | our $VERSION = '2.1604';
3 |  |  |  |  |
4 | 2 | 28µs | 2 | 46µs | # spent 30µs (15+15) within Moose::Util::TypeConstraints::Builtins::BEGIN@4 which was called: # once (15µs+15µs) by Moose::Meta::Attribute::BEGIN@16 at line 4 use strict; # spent 30µs making 1 call to Moose::Util::TypeConstraints::Builtins::BEGIN@4 # spent 16µs making 1 call to strict::import
5 | 2 | 35µs | 2 | 25µs | # spent 17µs (10+7) within Moose::Util::TypeConstraints::Builtins::BEGIN@5 which was called: # once (10µs+7µs) by Moose::Meta::Attribute::BEGIN@16 at line 5 use warnings; # spent 17µs making 1 call to Moose::Util::TypeConstraints::Builtins::BEGIN@5 # spent 7µs making 1 call to warnings::import
6 |  |  |  |  |
7 | 2 | 27µs | 2 | 79µs | # spent 43µs (7+36) within Moose::Util::TypeConstraints::Builtins::BEGIN@7 which was called: # once (7µs+36µs) by Moose::Meta::Attribute::BEGIN@16 at line 7 use Class::Load qw( is_class_loaded ); # spent 43µs making 1 call to Moose::Util::TypeConstraints::Builtins::BEGIN@7 # spent 36µs making 1 call to Exporter::import
8 | 3 | 41µs | 2 | 36µs | # spent 23µs (10+13) within Moose::Util::TypeConstraints::Builtins::BEGIN@8 which was called: # once (10µs+13µs) by Moose::Meta::Attribute::BEGIN@16 at line 8 use List::Util 1.33 (); # spent 23µs making 1 call to Moose::Util::TypeConstraints::Builtins::BEGIN@8 # spent 13µs making 1 call to UNIVERSAL::VERSION
9 | 2 | 1.69ms | 2 | 52µs | # spent 29µs (6+23) within Moose::Util::TypeConstraints::Builtins::BEGIN@9 which was called: # once (6µs+23µs) by Moose::Meta::Attribute::BEGIN@16 at line 9 use Scalar::Util qw( blessed ); # spent 29µs making 1 call to Moose::Util::TypeConstraints::Builtins::BEGIN@9 # spent 23µs making 1 call to Exporter::import
10 |  |  |  |  |
11 | 1 | 4µs | 1 | 396µs | # spent 1µs within Moose::Util::TypeConstraints::Builtins::type which was called: # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 22 sub type { goto &Moose::Util::TypeConstraints::type } # spent 396µs making 1 call to Moose::Util::TypeConstraints::type
12 | 16 | 40µs | 16 | 4.38ms | # spent 12µs within Moose::Util::TypeConstraints::Builtins::subtype which was called 16 times, avg 769ns/call: # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 26 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 33 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 157 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 40 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 114 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 66 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 77 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 146 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 60 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 119 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 170 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 52 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 131 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 106 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 151 # once (600ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 126 sub subtype { goto &Moose::Util::TypeConstraints::subtype } # spent 4.38ms making 16 calls to Moose::Util::TypeConstraints::subtype, avg 274µs/call
13 | 16 | 45µs | 16 | 23µs | # spent 15µs within Moose::Util::TypeConstraints::Builtins::as which was called 16 times, avg 950ns/call: # once (5µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 26 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 131 # once (800ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 151 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 40 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 170 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 157 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 33 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 52 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 77 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 66 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 114 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 126 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 106 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 60 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 119 # once (600ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 146 sub as { goto &Moose::Util::TypeConstraints::as } # spent 23µs making 16 calls to Moose::Util::TypeConstraints::as, avg 1µs/call
14 | 16 | 66µs | 16 | 17µs | # spent 17µs within Moose::Util::TypeConstraints::Builtins::where which was called 16 times, avg 1µs/call: # once (2µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 22 # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 33 # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 114 # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 60 # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 77 # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 66 # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 151 # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 146 # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 106 # once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 126 # once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 52 # once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 157 # once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 40 # once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 170 # once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 119 # once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 131 sub where (&) { goto &Moose::Util::TypeConstraints::where } # spent 17µs making 16 calls to Moose::Util::TypeConstraints::where, avg 1µs/call
15 | 17 | 46µs | 17 | 15µs | # spent 12µs within Moose::Util::TypeConstraints::Builtins::inline_as which was called 17 times, avg 688ns/call: # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 22 # once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 26 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 170 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 40 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 157 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 33 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 52 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 66 # once (700ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 146 # once (600ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 77 # once (600ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 126 # once (600ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 106 # once (600ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 131 # once (600ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 151 # once (600ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 119 # once (500ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 114 # once (500ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 60 sub inline_as (&) { goto &Moose::Util::TypeConstraints::inline_as } # spent 15µs making 17 calls to Moose::Util::TypeConstraints::inline_as, avg 865ns/call
16 |  |  |  |  |
17 |  |  |  |  | # spent 6.24ms (396µs+5.84) within Moose::Util::TypeConstraints::Builtins::define_builtins which was called: # once (396µs+5.84ms) by Moose::Meta::Attribute::BEGIN@16 at line 732 of Moose/Util/TypeConstraints.pm sub define_builtins {
18 | 1 | 400ns |  |  | my $registry = shift;
19 |  |  |  |  |
20 |  |  |  |  | type 'Any' # meta-type including all
21 |  |  |  |  | => where {1}
22 | 3 | 14µs | 3 | 5µs | # spent 2µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:22] which was called 2 times, avg 800ns/call: # 2 times (2µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 800ns/call => inline_as { '1' }; # spent 2µs making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::type
23 |  |  |  |  |
24 |  |  |  |  | subtype 'Item' # base type
25 |  |  |  |  | => as 'Any'
26 | 1 | 5µs | 3 | 7µs | => inline_as { '1' }; # spent 5µs making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
27 |  |  |  |  |
28 |  |  |  |  | subtype 'Undef'
29 |  |  |  |  | => as 'Item'
30 |  |  |  |  | => where { !defined($_) }
31 |  |  |  |  | # spent 1µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:33] which was called: # once (1µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm => inline_as {
32 | 1 | 3µs |  |  | '!defined(' . $_[1] . ')'
33 | 1 | 7µs | 4 | 3µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
34 |  |  |  |  |
35 |  |  |  |  | subtype 'Defined'
36 |  |  |  |  | => as 'Item'
37 |  |  |  |  | => where { defined($_) }
38 |  |  |  |  | # spent 104µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:40] which was called 76 times, avg 1µs/call: # 76 times (104µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 1µs/call => inline_as {
39 | 76 | 176µs |  |  | 'defined(' . $_[1] . ')'
40 | 1 | 6µs | 4 | 3µs | }; # spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
41 |  |  |  |  |
42 |  |  |  |  | subtype 'Bool'
43 |  |  |  |  | => as 'Item'
44 |  |  |  |  | => where { !defined($_) || $_ eq "" || "$_" eq '1' || "$_" eq '0' }
45 |  |  |  |  | # spent 124µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:52] which was called 58 times, avg 2µs/call: # 58 times (124µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 2µs/call => inline_as {
46 | 58 | 174µs |  |  | '('
47 |  |  |  |  | . '!defined(' . $_[1] . ') '
48 |  |  |  |  | . '|| ' . $_[1] . ' eq "" '
49 |  |  |  |  | . '|| (' . $_[1] . '."") eq "1" '
50 |  |  |  |  | . '|| (' . $_[1] . '."") eq "0"'
51 |  |  |  |  | . ')'
52 | 1 | 7µs | 4 | 3µs | }; # spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
53 |  |  |  |  |
54 |  |  |  |  | subtype 'Value'
55 |  |  |  |  | => as 'Defined'
56 |  |  |  |  | => where { !ref($_) }
57 |  |  |  |  | # spent 1.89ms (414µs+1.48) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:60] which was called 75 times, avg 25µs/call: # 75 times (414µs+1.48ms) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 25µs/call => inline_as {
58 | 75 | 279µs | 150 | 53µs | $_[0]->parent()->_inline_check($_[1]) # spent 53µs making 75 calls to Moose::Meta::TypeConstraint::parent, avg 707ns/call # spent 1.43ms making 75 calls to Moose::Meta::TypeConstraint::_inline_check, avg 19µs/call, recursion: max depth 2, sum of overlapping time 1.43ms
59 |  |  |  |  | . ' && !ref(' . $_[1] . ')'
60 | 1 | 7µs | 4 | 3µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 500ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
61 |  |  |  |  |
62 |  |  |  |  | subtype 'Ref'
63 |  |  |  |  | => as 'Defined'
64 |  |  |  |  | => where { ref($_) }
65 |  |  |  |  | # no need to call parent - ref also checks for definedness
66 | 2 | 11µs | 4 | 3µs | # spent 1µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:66] which was called: # once (1µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm => inline_as { 'ref(' . $_[1] . ')' }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
67 |  |  |  |  |
68 |  |  |  |  | subtype 'Str'
69 |  |  |  |  | => as 'Value'
70 |  |  |  |  | => where { ref(\$_) eq 'SCALAR' || ref(\(my $val = $_)) eq 'SCALAR' }
71 |  |  |  |  | # spent 3.09ms (400µs+2.69) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:77] which was called 60 times, avg 52µs/call: # 60 times (400µs+2.69ms) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 52µs/call => inline_as {
72 | 60 | 301µs | 120 | 78µs | $_[0]->parent()->_inline_check($_[1]) # spent 78µs making 60 calls to Moose::Meta::TypeConstraint::parent, avg 1µs/call # spent 2.61ms making 60 calls to Moose::Meta::TypeConstraint::_inline_check, avg 44µs/call, recursion: max depth 1, sum of overlapping time 2.61ms
73 |  |  |  |  | . ' && ('
74 |  |  |  |  | . 'ref(\\' . $_[1] . ') eq "SCALAR"'
75 |  |  |  |  | . ' || ref(\\(my $val = ' . $_[1] . ')) eq "SCALAR"'
76 |  |  |  |  | . ')'
77 | 1 | 8µs | 4 | 3µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 600ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
78 |  |  |  |  |
79 | 1 | 1µs | 1 | 12µs | my $value_type = Moose::Util::TypeConstraints::find_type_constraint('Value'); # spent 12µs making 1 call to Moose::Util::TypeConstraints::find_type_constraint
80 |  |  |  |  | subtype 'Num'
81 |  |  |  |  | => as 'Str'
82 |  |  |  |  | => where {
83 |  |  |  |  | my $val = $_;
84 |  |  |  |  | ($val =~ /\A[+-]?[0-9]+\z/) ||
85 |  |  |  |  | ( $val =~ /\A(?:[+-]?) # matches optional +- in the beginning
86 |  |  |  |  | (?=[0-9]|\.[0-9]) # matches previous +- only if there is something like 3 or .3
87 |  |  |  |  | [0-9]* # matches 0-9 zero or more times
88 |  |  |  |  | (?:\.[0-9]+)? # matches optional .89 or nothing
89 |  |  |  |  | (?:[Ee](?:[+-]?[0-9]+))? # matches E1 or e1 or e-1 or e+1 etc
90 |  |  |  |  | \z/x );
91 |  |  |  |  | }
92 |  |  |  |  | # spent 144µs (14+130) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:106] which was called 3 times, avg 48µs/call: # 3 times (14µs+130µs) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 48µs/call => inline_as {
93 |  |  |  |  | # the long Str tests are redundant here
94 |  |  |  |  | #storing $_[1] in a temporary value,
95 |  |  |  |  | #so that $_[1] won't get converted to a string for regex match
96 |  |  |  |  | #see t/attributes/numeric_defaults.t for more details
97 | 3 | 13µs | 3 | 0s | 'my $val = '.$_[1].';'. # spent 130µs making 3 calls to Moose::Meta::TypeConstraint::_inline_check, avg 43µs/call, recursion: max depth 1, sum of overlapping time 130µs
98 |  |  |  |  | $value_type->_inline_check('$val')
99 |  |  |  |  | .' && ( $val =~ /\A[+-]?[0-9]+\z/ || '
100 |  |  |  |  | . '$val =~ /\A(?:[+-]?) # matches optional +- in the beginning
101 |  |  |  |  | (?=[0-9]|\.[0-9]) # matches previous +- only if there is something like 3 or .3
102 |  |  |  |  | [0-9]* # matches 0-9 zero or more times
103 |  |  |  |  | (?:\.[0-9]+)? # matches optional .89 or nothing
104 |  |  |  |  | (?:[Ee](?:[+-]?[0-9]+))? # matches E1 or e1 or e-1 or e+1 etc
105 |  |  |  |  | \z/x ); '
106 | 1 | 6µs | 4 | 3µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 600ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
107 |  |  |  |  |
108 |  |  |  |  | subtype 'Int'
109 |  |  |  |  | => as 'Num'
110 |  |  |  |  | => where { (my $val = $_) =~ /\A-?[0-9]+\z/ }
111 |  |  |  |  | # spent 468µs (41+427) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:114] which was called 11 times, avg 43µs/call: # 11 times (41µs+427µs) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 43µs/call => inline_as {
112 | 11 | 37µs | 11 | 0s | $value_type->_inline_check($_[1]) # spent 427µs making 11 calls to Moose::Meta::TypeConstraint::_inline_check, avg 39µs/call, recursion: max depth 1, sum of overlapping time 427µs
113 |  |  |  |  | . ' && (my $val = ' . $_[1] . ') =~ /\A-?[0-9]+\z/'
114 | 1 | 7µs | 4 | 3µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 500ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
115 |  |  |  |  |
116 |  |  |  |  | subtype 'CodeRef'
117 |  |  |  |  | => as 'Ref'
118 |  |  |  |  | => where { ref($_) eq 'CODE' }
119 | 2 | 10µs | 4 | 3µs | # spent 1µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:119] which was called: # once (1µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm => inline_as { 'ref(' . $_[1] . ') eq "CODE"' }; # spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 600ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
120 |  |  |  |  |
121 |  |  |  |  | subtype 'RegexpRef'
122 |  |  |  |  | => as 'Ref'
123 |  |  |  |  | => where( \&_RegexpRef )
124 |  |  |  |  | # spent 2µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:126] which was called: # once (2µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm => inline_as {
125 | 1 | 3µs |  |  | 'Moose::Util::TypeConstraints::Builtins::_RegexpRef(' . $_[1] . ')'
126 | 1 | 7µs | 4 | 3µs | }; # spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 600ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as # spent 600ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
127 |  |  |  |  |
128 |  |  |  |  | subtype 'GlobRef'
129 |  |  |  |  | => as 'Ref'
130 |  |  |  |  | => where { ref($_) eq 'GLOB' }
131 | 2 | 10µs | 4 | 3µs | # spent 1µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:131] which was called: # once (1µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm => inline_as { 'ref(' . $_[1] . ') eq "GLOB"' }; # spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 600ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
132 |  |  |  |  |
133 |  |  |  |  | # NOTE: scalar filehandles are GLOB refs, but a GLOB ref is not always a
134 |  |  |  |  | # filehandle
135 |  |  |  |  | subtype 'FileHandle'
136 |  |  |  |  | => as 'Ref'
137 |  |  |  |  | => where {
138 |  |  |  |  | (ref($_) eq "GLOB" && Scalar::Util::openhandle($_))
139 |  |  |  |  | || (blessed($_) && $_->isa("IO::Handle"));
140 |  |  |  |  | }
141 |  |  |  |  | # spent 3µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:146] which was called: # once (3µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm => inline_as {
142 | 1 | 5µs |  |  | '(ref(' . $_[1] . ') eq "GLOB" '
143 |  |  |  |  | . '&& Scalar::Util::openhandle(' . $_[1] . ')) '
144 |  |  |  |  | . '|| (Scalar::Util::blessed(' . $_[1] . ') '
145 |  |  |  |  | . '&& ' . $_[1] . '->isa("IO::Handle"))'
146 | 1 | 8µs | 4 | 3µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as # spent 600ns making 1 call to Moose::Util::TypeConstraints::Builtins::as
147 |  |  |  |  |
148 |  |  |  |  | subtype 'Object'
149 |  |  |  |  | => as 'Ref'
150 |  |  |  |  | => where { blessed($_) }
151 | 2 | 12µs | 4 | 3µs | # spent 1µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:151] which was called: # once (1µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm => inline_as { 'Scalar::Util::blessed(' . $_[1] . ')' }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 600ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
152 |  |  |  |  |
153 |  |  |  |  | subtype 'ClassName'
154 |  |  |  |  | => as 'Str'
155 |  |  |  |  | => where { is_class_loaded($_) }
156 |  |  |  |  | # the long Str tests are redundant here
157 | 3 | 12µs | 4 | 3µs | # spent 2µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:157] which was called 2 times, avg 1µs/call: # 2 times (2µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 1µs/call => inline_as { 'Class::Load::is_class_loaded(' . $_[1] . ')' }; # spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 800ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
158 |  |  |  |  |
159 |  |  |  |  | subtype 'RoleName'
160 |  |  |  |  | => as 'ClassName'
161 |  |  |  |  | => where {
162 |  |  |  |  | (Class::MOP::class_of($_) || return)->isa('Moose::Meta::Role');
163 |  |  |  |  | }
164 |  |  |  |  | # spent 27µs (9+19) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:170] which was called: # once (9µs+19µs) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm => inline_as {
165 | 1 | 6µs | 2 | 700ns | $_[0]->parent()->_inline_check($_[1]) # spent 700ns making 1 call to Moose::Meta::TypeConstraint::parent # spent 18µs making 1 call to Moose::Meta::TypeConstraint::_inline_check, recursion: max depth 1, sum of overlapping time 18µs
166 |  |  |  |  | . ' && do {'
167 |  |  |  |  | . 'my $meta = Class::MOP::class_of(' . $_[1] . ');'
168 |  |  |  |  | . '$meta && $meta->isa("Moose::Meta::Role");'
169 |  |  |  |  | . '}'
170 | 1 | 8µs | 4 | 3µs | }; # spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::where # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as # spent 700ns making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
171 |  |  |  |  |
172 |  |  |  |  | $registry->add_type_constraint(
173 |  |  |  |  | Moose::Meta::TypeConstraint::Parameterizable->new(
174 |  |  |  |  | name => 'ScalarRef',
175 |  |  |  |  | package_defined_in => __PACKAGE__,
176 |  |  |  |  | parent =>
177 |  |  |  |  | Moose::Util::TypeConstraints::find_type_constraint('Ref'),
178 |  |  |  |  | constraint => sub { ref($_) eq 'SCALAR' || ref($_) eq 'REF' },
179 |  |  |  |  | constraint_generator => sub {
180 |  |  |  |  | my $type_parameter = shift;
181 |  |  |  |  | my $check = $type_parameter->_compiled_type_constraint;
182 |  |  |  |  | return sub {
183 |  |  |  |  | return $check->( ${$_} );
184 |  |  |  |  | };
185 |  |  |  |  | },
186 |  |  |  |  | # spent 3µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:189] which was called: # once (3µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm inlined => sub {
187 | 1 | 4µs |  |  | 'ref(' . $_[1] . ') eq "SCALAR" '
188 |  |  |  |  | . '|| ref(' . $_[1] . ') eq "REF"'
189 |  |  |  |  | },
190 |  |  |  |  | inline_generator => sub {
191 |  |  |  |  | my $self = shift;
192 |  |  |  |  | my $type_parameter = shift;
193 |  |  |  |  | my $val = shift;
194 |  |  |  |  | '(ref(' . $val . ') eq "SCALAR" || ref(' . $val . ') eq "REF") '
195 |  |  |  |  | . '&& ' . $type_parameter->_inline_check('${(' . $val . ')}')
196 |  |  |  |  | },
197 |  |  |  |  | )
198 | 1 | 12µs | 3 | 337µs | ); # spent 309µs making 1 call to Moose::Meta::TypeConstraint::new # spent 16µs making 1 call to Moose::Meta::TypeConstraint::Registry::add_type_constraint # spent 12µs making 1 call to Moose::Util::TypeConstraints::find_type_constraint
199 |  |  |  |  |
200 |  |  |  |  | $registry->add_type_constraint(
201 |  |  |  |  | Moose::Meta::TypeConstraint::Parameterizable->new(
202 |  |  |  |  | name => 'ArrayRef',
203 |  |  |  |  | package_defined_in => __PACKAGE__,
204 |  |  |  |  | parent =>
205 |  |  |  |  | Moose::Util::TypeConstraints::find_type_constraint('Ref'),
206 |  |  |  |  | constraint => sub { ref($_) eq 'ARRAY' },
207 |  |  |  |  | # spent 39µs (31+8) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:216] which was called 4 times, avg 10µs/call: # 4 times (31µs+8µs) by Moose::Meta::TypeConstraint::Parameterizable::generate_constraint_for at line 33 of Moose/Meta/TypeConstraint/Parameterizable.pm, avg 10µs/call constraint_generator => sub {
208 | 4 | 1µs |  |  | my $type_parameter = shift;
209 | 4 | 6µs | 4 | 8µs | my $check = $type_parameter->_compiled_type_constraint; # spent 8µs making 4 calls to Moose::Meta::TypeConstraint::_compiled_type_constraint, avg 2µs/call
210 |  |  |  |  | return sub {
211 |  |  |  |  | foreach my $x (@$_) {
212 |  |  |  |  | ( $check->($x) ) || return;
213 |  |  |  |  | }
214 |  |  |  |  | 1;
215 |  |  |  |  | }
216 | 4 | 24µs |  |  | },
217 | 22 | 53µs |  |  | # spent 33µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:217] which was called 22 times, avg 2µs/call: # 22 times (33µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 2µs/call inlined => sub { 'ref(' . $_[1] . ') eq "ARRAY"' },
218 |  |  |  |  | # spent 1.10ms (135µs+962µs) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:231] which was called 20 times, avg 55µs/call: # 20 times (135µs+962µs) by Moose::Meta::TypeConstraint::Parameterizable::generate_inline_for at line 62 of Moose/Meta/TypeConstraint/Parameterizable.pm, avg 55µs/call inline_generator => sub {
219 | 20 | 8µs |  |  | my $self = shift;
220 | 20 | 5µs |  |  | my $type_parameter = shift;
221 | 20 | 6µs |  |  | my $val = shift;
222 |  |  |  |  |
223 | 20 | 183µs | 20 | 962µs | 'do {' # spent 619µs making 15 calls to Moose::Meta::TypeConstraint::_inline_check, avg 41µs/call # spent 344µs making 5 calls to Moose::Meta::TypeConstraint::Union::_inline_check, avg 69µs/call
224 |  |  |  |  | . 'my $check = ' . $val . ';'
225 |  |  |  |  | . 'ref($check) eq "ARRAY" '
226 |  |  |  |  | . '&& &List::Util::all('
227 |  |  |  |  | . 'sub { ' . $type_parameter->_inline_check('$_') . ' }, '
228 |  |  |  |  | . '@{$check}'
229 |  |  |  |  | . ')'
230 |  |  |  |  | . '}';
231 |  |  |  |  | },
232 |  |  |  |  | )
233 | 1 | 8µs | 3 | 225µs | ); # spent 200µs making 1 call to Moose::Meta::TypeConstraint::new # spent 12µs making 1 call to Moose::Meta::TypeConstraint::Registry::add_type_constraint # spent 12µs making 1 call to Moose::Util::TypeConstraints::find_type_constraint
234 |  |  |  |  |
235 |  |  |  |  | $registry->add_type_constraint(
236 |  |  |  |  | Moose::Meta::TypeConstraint::Parameterizable->new(
237 |  |  |  |  | name => 'HashRef',
238 |  |  |  |  | package_defined_in => __PACKAGE__,
239 |  |  |  |  | parent =>
240 |  |  |  |  | Moose::Util::TypeConstraints::find_type_constraint('Ref'),
241 |  |  |  |  | constraint => sub { ref($_) eq 'HASH' },
242 |  |  |  |  | # spent 20µs (16+4) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:251] which was called 2 times, avg 10µs/call: # 2 times (16µs+4µs) by Moose::Meta::TypeConstraint::Parameterizable::generate_constraint_for at line 33 of Moose/Meta/TypeConstraint/Parameterizable.pm, avg 10µs/call constraint_generator => sub {
243 | 2 | 600ns |  |  | my $type_parameter = shift;
244 | 2 | 4µs | 2 | 4µs | my $check = $type_parameter->_compiled_type_constraint; # spent 4µs making 2 calls to Moose::Meta::TypeConstraint::_compiled_type_constraint, avg 2µs/call
245 |  |  |  |  | return sub {
246 |  |  |  |  | foreach my $x ( values %$_ ) {
247 |  |  |  |  | ( $check->($x) ) || return;
248 |  |  |  |  | }
249 |  |  |  |  | 1;
250 |  |  |  |  | }
251 | 2 | 10µs |  |  | },
252 | 53 | 122µs |  |  | # spent 81µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:252] which was called 53 times, avg 2µs/call: # 53 times (81µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 2µs/call inlined => sub { 'ref(' . $_[1] . ') eq "HASH"' },
253 |  |  |  |  | # spent 822µs (123+699) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:266] which was called 18 times, avg 46µs/call: # 18 times (123µs+699µs) by Moose::Meta::TypeConstraint::Parameterizable::generate_inline_for at line 62 of Moose/Meta/TypeConstraint/Parameterizable.pm, avg 46µs/call inline_generator => sub {
254 | 18 | 5µs |  |  | my $self = shift;
255 | 18 | 4µs |  |  | my $type_parameter = shift;
256 | 18 | 6µs |  |  | my $val = shift;
257 |  |  |  |  |
258 | 18 | 94µs | 18 | 699µs | 'do {' # spent 699µs making 18 calls to Moose::Meta::TypeConstraint::_inline_check, avg 39µs/call
259 |  |  |  |  | . 'my $check = ' . $val . ';'
260 |  |  |  |  | . 'ref($check) eq "HASH" '
261 |  |  |  |  | . '&& &List::Util::all('
262 |  |  |  |  | . 'sub { ' . $type_parameter->_inline_check('$_') . ' }, '
263 |  |  |  |  | . 'values %{$check}'
264 |  |  |  |  | . ')'
265 |  |  |  |  | . '}';
266 |  |  |  |  | },
267 |  |  |  |  | )
268 | 1 | 7µs | 3 | 193µs | ); # spent 168µs making 1 call to Moose::Meta::TypeConstraint::new # spent 13µs making 1 call to Moose::Meta::TypeConstraint::Registry::add_type_constraint # spent 12µs making 1 call to Moose::Util::TypeConstraints::find_type_constraint
269 |  |  |  |  |
270 |  |  |  |  | $registry->add_type_constraint(
271 |  |  |  |  | Moose::Meta::TypeConstraint::Parameterizable->new(
272 |  |  |  |  | name => 'Maybe',
273 |  |  |  |  | package_defined_in => __PACKAGE__,
274 |  |  |  |  | parent =>
275 |  |  |  |  | Moose::Util::TypeConstraints::find_type_constraint('Item'),
276 |  |  |  |  | constraint => sub {1},
277 |  |  |  |  | # spent 9µs (8+800ns) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:284] which was called: # once (8µs+800ns) by Moose::Meta::TypeConstraint::Parameterizable::generate_constraint_for at line 33 of Moose/Meta/TypeConstraint/Parameterizable.pm constraint_generator => sub {
278 | 1 | 400ns |  |  | my $type_parameter = shift;
279 | 1 | 1µs | 1 | 800ns | my $check = $type_parameter->_compiled_type_constraint; # spent 800ns making 1 call to Moose::Meta::TypeConstraint::_compiled_type_constraint
280 |  |  |  |  | return sub {
281 |  |  |  |  | return 1 if not( defined($_) ) || $check->($_);
282 |  |  |  |  | return;
283 |  |  |  |  | }
284 | 1 | 6µs |  |  | },
285 | 1 | 3µs |  |  | # spent 1µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:285] which was called: # once (1µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm inlined => sub {'1'},
286 |  |  |  |  | # spent 119µs (12+107) within Moose::Util::TypeConstraints::Builtins::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Util/TypeConstraints/Builtins.pm:292] which was called 2 times, avg 60µs/call: # 2 times (12µs+107µs) by Moose::Meta::TypeConstraint::Parameterizable::generate_inline_for at line 62 of Moose/Meta/TypeConstraint/Parameterizable.pm, avg 60µs/call inline_generator => sub {
287 | 2 | 600ns |  |  | my $self = shift;
288 | 2 | 200ns |  |  | my $type_parameter = shift;
289 | 2 | 600ns |  |  | my $val = shift;
290 | 2 | 10µs | 2 | 107µs | '!defined(' . $val . ') ' # spent 107µs making 2 calls to Moose::Meta::TypeConstraint::Union::_inline_check, avg 54µs/call
291 |  |  |  |  | . '|| (' . $type_parameter->_inline_check($val) . ')'
292 |  |  |  |  | },
293 |  |  |  |  | )
294 | 1 | 11µs | 3 | 189µs | ); # spent 165µs making 1 call to Moose::Meta::TypeConstraint::new # spent 13µs making 1 call to Moose::Meta::TypeConstraint::Registry::add_type_constraint # spent 12µs making 1 call to Moose::Util::TypeConstraints::find_type_constraint
295 |  |  |  |  | }
296 |  |  |  |  |
297 | 1 | 3µs |  |  | 1;
298 |  |  |  |  |
299 |  |  |  |  | __END__