Branch Coverage

blib/lib/Class/Multimethods/Pure.pm
Criterion Covered Total %
branch 93 114 81.5


line true false branch
39 0 87 unless my $name = shift()
41 87 0 if (@_)
44 0 99 if ($_[0] =~ /^-/) { }
52 63 36 unless (ref $type)
53 21 42 if ('Class::Multimethods::Pure::Type::Unblessed'->is_unblessed($type)) { }
64 0 87 unless @_
95 0 84 if (process_multi($REGISTRY, @_))
108 3 24 if ($cmd eq 'multi') { }
3 21 elsif ($cmd eq 'import') { }
21 0 elsif (not defined $cmd) { }
113 0 6 unless (grep {$_ eq $export;} @exports)
209 0 0 if subset($self, $other)
319 1157 79 if (ref $self eq 'Class::Multimethods::Pure::Type::Package' and ref $other eq 'Class::Multimethods::Pure::Type::Package') { }
334 640 0 blessed $obj ? :
375 0 21 unless $SPECIAL{$name}
455 144 6 if $self->base->matches($obj)
496 0 4 unless $_->ref_cacheable
517 50 82 if $_
535 0 0 unless $_
557 0 0 if $_
599 21 2440 if @brgs < @args
600 16 2424 if @args < @brgs
605 1552 1084 unless $cmp
606 1035 49 if ($cmp and not $proper)
618 19 661 if @$args < @params
621 420 384 unless ($params[$i]->matches($$args[$i]))
646 17 34 if ($core->can('new'))
651 34 0 if ($core->can('new'))
697 241 439 if ($variant->matches($args))
699 12 104 if ($_->less($variant))
706 90 14 if ($variant->less($cand[$i]))
716 131 5 if (@cand == 1) { }
1 4 elsif (@cand == 0) { }
760 302 1419 if (not defined $$self{'arity'}) { }
764 2 1417 unless ($$self{'arity'} == @params)
771 28 3337 unless ($_->ref_cacheable)
781 4484 39 if ($$self{'can_cache'}) { }
782 1 4483 if (@$args < $$self{'arity'})
787 4440 43 if (my $var = $$self{'cache'}{$idx}) { }
835 42 12 if defined $$self{'find_variant'}
846 39 243 if ($$tree{'node_type'} eq 'unique')
852 39 204 if ($$tree{'node_type'} eq 'none_found')
858 69 135 if ($$tree{'node_type'} eq 'ambiguous')
866 135 0 if ($$tree{'node_type'} eq 'branch')
872 68 80 if (exists $_[0][$position] and $type->matches($_[0][$position])) { }
890 103 2138 if ($$self{'variants'}[$ret[$j]{'variantno'}]->less($$self{'variants'}[$ret[$i]{'variantno'}]))
909 39 243 if (@$rcmap == 0)
915 108 135 if (@$conds == 0)
916 39 69 if (@$rcmap == 1)
922 69 0 if (@$rcmap > 1)
937 869 0 if ($bits & 1)
940 524 345 if ($bits & 2)
946 152 99 if ($balance < $bestbalance)
952 0 135 unless defined $bestcond
986 130 867 if $$cond{'position'} != $i
987 345 522 if $params[$i]->subset($$cond{'type'})
1014 4 43 if ($conds[$i]{'position'} == $conds[$j]{'position'} and $conds[$i]{'type'}->subset($conds[$j]{'type'}) and $conds[$j]{'type'}->subset($conds[$i]{'type'}))