Branch Coverage

blib/lib/Type/Utils.pm
Criterion Covered Total %
branch 143 196 72.9


line true false branch
47 0 48 unless (caller)->isa("Type::Library")
51 0 84 unless eval "use $lib; 1"
53 83 1 if ($lib->isa('Type::Library') or $lib eq 'Types::TypeTiny') { }
0 1 elsif ($lib->isa('MooseX::Types::Base')) { }
0 1 elsif ($lib->isa('MouseX::Types::Base')) { }
0 1 elsif ($lib->isa('Specio::Exporter')) { }
1 0 elsif ($lib->isa('Exporter') and my $types = do { no strict 'refs'; do { "${lib}::EXPORT_TAGS" }->{'types'} }) { }
66 0 0 $c ? :
80 0 0 $mouse->has_coercion ? :
115 140 115 if (@_ % 2 == 0) { }
117 1 1 if (@_ == 2 and $_[0] =~ /^_*[A-Z]/ and $_[1] =~ /^[0-9]+$/)
124 0 115 if exists $opts{'name'}
131 100 155 if (defined $opts{'parent'})
134 64 36 unless (is_TypeTiny($opts{'parent'}))
138 0 64 unless $caller->isa("Type::Library")
141 0 64 unless $opts{'parent'} = $caller->meta->get_type($opts{'parent'})
146 100 155 if (defined $opts{'parent'}) { }
155 232 23 unless ($type->is_anon)
157 170 62 if $caller->isa("Type::Library")
162 1 230 $INC{'Type/Registry.pm'} ? :
188 8 43 ref $_[0] eq 'HASH' ? :
189 16 35 unless shift()
191 43 8 if (defined $name)
192 43 0 unless exists $opts{'name'}
193 16 27 unless exists $opts{'class'}
205 1 18 ref $_[0] eq 'HASH' ? :
206 0 19 unless shift()
208 18 1 if (defined $name)
209 18 0 unless exists $opts{'name'}
210 0 18 unless exists $opts{'role'}
222 0 35 ref $_[0] eq 'ARRAY' ? :
223 0 35 unless shift()
226 35 0 if defined $name
236 0 15 ref $_[0] eq 'ARRAY' ? :
237 0 15 unless shift()
240 15 0 if defined $name
250 6 4 ref $_[0] eq 'ARRAY' ? :
251 0 10 unless shift()
254 4 6 if defined $name
264 5 2 ref $_[0] eq 'ARRAY' ? :
265 0 7 unless shift()
268 2 5 if defined $name
279 30 3 unless ref $_[0]
282 1 32 if (ref $_[0] eq "Type::Tiny::_DeclaredType")
299 32 1 if ($caller->isa('Type::Library')) { }
301 31 1 unless $c->is_anon
304 2 30 ref $_ ? :
318 35 16 if (scalar(caller)->isa("Type::Library"))
321 4 31 ref $_ ? :
325 5 60 ref $_ ? :
342 30 3 unless (is_TypeTiny($type))
343 0 30 unless (caller)->isa("Type::Library")
345 0 30 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 0 3 if $r
489 3 0 if (my $assume = $self->{'~~assume'} and $_[0] =~ /[A-Z_a-z][0-9A-Z_a-z]*(?:::[0-9A-Z_a-z]+)*/)
492 3 0 ref $assume ? :
496 3 6 if $r
506 0 3 if ($INC{'Moose.pm'})
510 0 0 if defined $r
519 0 3 if ($INC{'Mouse.pm'})
523 0 0 if defined $r
536 11 0 if (defined $self->{'~~chained'})
538 11 0 unless $self == $chained
539 3 8 if defined $r
544 1 7 if "Types::Standard"->has_type($_[0])
548 4 3 unless $_[1]
551 3 0 if (defined $self->{'~~chained'})
552 0 3 if $INC{'Moose.pm'}
553 0 3 if $INC{'Mouse.pm'}
556 0 3 if ($meta and $meta->isa('Class::MOP::Module')) { }
0 6 elsif ($meta and $meta->isa('Mouse::Meta::Module')) { }
558 0 0 if $r
563 0 0 if $r
574 3 4 unless defined $opts{'for'}
589 1 6 unless (eval { do { $type = $dwimmer->lookup($string); 1 } })
591 1 0 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