Branch Coverage

blib/lib/Type/Utils.pm
Criterion Covered Total %
branch 166 196 84.6


line true false branch
47 0 68 unless (caller)->isa("Type::Library")
51 0 115 unless eval "use $lib; 1"
53 109 6 if ($lib->isa('Type::Library') or $lib eq 'Types::TypeTiny') { }
2 4 elsif ($lib->isa('MooseX::Types::Base')) { }
1 3 elsif ($lib->isa('MouseX::Types::Base')) { }
0 3 elsif ($lib->isa('Specio::Exporter')) { }
1 2 elsif ($lib->isa('Exporter') and my $types = do {
66 1 21 $c ? :
80 0 21 $mouse->has_coercion ? :
115 188 148 if (@_ % 2 == 0) { }
117 1 1 if (@_ == 2 and $_[0] =~ /^_*[A-Z]/ and $_[1] =~ /^[0-9]+$/)
124 0 148 if exists $opts{'name'}
131 128 208 if (defined $opts{'parent'})
134 88 40 unless (is_TypeTiny($opts{'parent'}))
138 0 88 unless $caller->isa("Type::Library")
141 0 88 unless $opts{'parent'} = $caller->meta->get_type($opts{'parent'})
146 128 208 if (defined $opts{'parent'}) { }
155 306 30 unless ($type->is_anon)
157 232 74 if $caller->isa("Type::Library")
162 7 298 $INC{'Type/Registry.pm'} ? :
188 11 56 ref $_[0] eq 'HASH' ? :
189 22 45 unless shift()
191 56 11 if (defined $name)
192 56 0 unless exists $opts{'name'}
193 22 34 unless exists $opts{'class'}
205 1 25 ref $_[0] eq 'HASH' ? :
206 0 26 unless shift()
208 25 1 if (defined $name)
209 25 0 unless exists $opts{'name'}
210 1 24 unless exists $opts{'role'}
222 0 49 ref $_[0] eq 'ARRAY' ? :
223 0 49 unless shift()
226 49 0 if defined $name
236 1 19 ref $_[0] eq 'ARRAY' ? :
237 0 20 unless shift()
240 19 1 if defined $name
250 8 6 ref $_[0] eq 'ARRAY' ? :
251 0 14 unless shift()
254 6 8 if defined $name
264 5 3 ref $_[0] eq 'ARRAY' ? :
265 0 8 unless shift()
268 3 5 if defined $name
279 42 3 unless ref $_[0]
282 1 44 if (ref $_[0] eq "Type::Tiny::_DeclaredType")
299 44 1 if ($caller->isa('Type::Library')) { }
301 43 1 unless $c->is_anon
304 2 42 ref $_ ? :
318 47 17 if (scalar(caller)->isa("Type::Library"))
321 4 43 ref $_ ? :
325 5 84 ref $_ ? :
342 42 3 unless (is_TypeTiny($type))
343 0 42 unless (caller)->isa("Type::Library")
345 0 42 unless $type = (caller)->meta->get_type($type)
360 1 115042 if (@_ == 1) { }
365 75027 40015 unless Types::TypeTiny::assert_TypeTiny($type)->check($value)
368 30010 10006 if (Types::TypeTiny::is_StringLike($code)) { }
370 15004 15006 if (wantarray)
372 0 15004 if $@
375 15005 1 if (defined wantarray)
377 0 15005 if $@
381 0 1 if $@
407 2 18 if (@_ == 1) { }
416 19 1 if ($type->can_be_inlined) { }
435 5 15 if (Types::TypeTiny::is_StringLike($code)) { }
470 0 15 unless $Type::Utils::b->[1] <=> $Type::Utils::a->[1]
487 4 9 if $r
489 9 0 if (my $assume = $self->{'~~assume'} and $_[0] =~ /[A-Z_a-z][0-9A-Z_a-z]*(?:::[0-9A-Z_a-z]+)*/)
492 9 0 ref $assume ? :
496 7 14 if $r
506 5 5 if ($INC{'Moose.pm'})
510 3 2 if defined $r
519 5 5 if ($INC{'Mouse.pm'})
523 3 2 if defined $r
536 172 0 if (defined $self->{'~~chained'})
538 172 0 unless $self == $chained
539 3 169 if defined $r
544 115 54 if "Types::Standard"->has_type($_[0])
548 45 9 unless $_[1]
551 9 0 if (defined $self->{'~~chained'})
552 4 5 if $INC{'Moose.pm'}
553 4 5 if $INC{'Mouse.pm'}
556 3 6 if ($meta and $meta->isa('Class::MOP::Module')) { }
3 6 elsif ($meta and $meta->isa('Mouse::Meta::Module')) { }
558 3 0 if $r
563 3 0 if $r
574 42 68 unless defined $opts{'for'}
589 3 107 unless (eval {
591 1 2 unless $e =~ /not a known type constraint/
643 2 4 Types::TypeTiny::is_TypeTiny($type) ? :
2 2 if (&blessed($type)) { }
4 2 unless (Types::TypeTiny::is_TypeTiny($type))
653 2 1 Types::TypeTiny::is_TypeTiny($type) ? :
0 1 if (&blessed($type)) { }
1 2 unless (Types::TypeTiny::is_TypeTiny($type))
1 1 &$check($value) ? :
657 2 105 ref $_[0] eq 'SCALAR' ? :
660 32 75 if @items == 1
661 42 33 if @items == 2