Branch Coverage

blib/lib/Class/Multimethods.pm
Criterion Covered Total %
branch 54 304 17.7


line true false branch
42 8 20 if (not $Class::Multimethods::dispatch_installed{$pkg}{$name})
44 0 8 unless eval make_dispatch($pkg, $name)
1 0 if $code
0 0 if index($types[$i], 'Class::Multimethods::SUPERCLASS') == 0
0 0 if @code
0 0 if (@code == 0 and $Class::Multimethods::hasgeneric{'mm'})
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'mm'}{$handler}
0 0 if (defined $handler)
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'mm'}{$handler}
0 0 if (defined $handler)
0 0 if (@code == 1) { }
0 0 elsif (@code > 1) { }
2 0 if $code
0 0 if index($types[$i], 'Class::Multimethods::SUPERCLASS') == 0
0 0 if @code
0 0 if (@code == 0 and $Class::Multimethods::hasgeneric{'mm'})
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'mm'}{$handler}
0 0 if (defined $handler)
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'mm'}{$handler}
0 0 if (defined $handler)
0 0 if (@code == 1) { }
0 0 elsif (@code > 1) { }
32 220 if $code
0 222 if index($types[$i], 'Class::Multimethods::SUPERCLASS') == 0
0 0 if @code
0 183 if (@code == 0 and $Class::Multimethods::hasgeneric{'mm'})
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'mm'}{$handler}
0 12 if (defined $handler)
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'mm'}{$handler}
0 183 if (defined $handler)
25 195 if (@code == 1) { }
12 183 elsif (@code > 1) { }
4 0 if $code
0 0 if index($types[$i], 'Class::Multimethods::SUPERCLASS') == 0
0 0 if @code
0 0 if (@code == 0 and $Class::Multimethods::hasgeneric{'new'})
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'new'}{$handler}
0 0 if (defined $handler)
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'new'}{$handler}
0 0 if (defined $handler)
0 0 if (@code == 1) { }
0 0 elsif (@code > 1) { }
0 3 if $code
0 3 if index($types[$i], 'Class::Multimethods::SUPERCLASS') == 0
0 0 if @code
0 0 if (@code == 0 and $Class::Multimethods::hasgeneric{'set'})
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'set'}{$handler}
0 0 if (defined $handler)
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'set'}{$handler}
0 0 if (defined $handler)
3 0 if (@code == 1) { }
0 0 elsif (@code > 1) { }
2 0 if $code
0 0 if index($types[$i], 'Class::Multimethods::SUPERCLASS') == 0
0 0 if @code
0 0 if (@code == 0 and $Class::Multimethods::hasgeneric{'set'})
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'set'}{$handler}
0 0 if (defined $handler)
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'set'}{$handler}
0 0 if (defined $handler)
0 0 if (@code == 1) { }
0 0 elsif (@code > 1) { }
3 1 if $code
0 1 if index($types[$i], 'Class::Multimethods::SUPERCLASS') == 0
0 0 if @code
0 0 if (@code == 0 and $Class::Multimethods::hasgeneric{'val'})
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'val'}{$handler}
0 0 if (defined $handler)
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'val'}{$handler}
0 0 if (defined $handler)
1 0 if (@code == 1) { }
0 0 elsif (@code > 1) { }
2 79 if $code
0 79 if index($types[$i], 'Class::Multimethods::SUPERCLASS') == 0
61 0 if @code
61 0 if (@code == 0 and $Class::Multimethods::hasgeneric{'wild'})
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'wild'}{$handler}
0 3 if (defined $handler)
0 0 if ref $handler
0 0 if defined $Class::Multimethods::dispatch{'wild'}{$handler}
0 0 if (defined $handler)
76 3 if (@code == 1) { }
3 0 elsif (@code > 1) { }
56 0 0 if (@_ == 1 and ref $_[0] eq 'CODE') { }
65 0 0 if (@_ == 1 and ref $_[0] eq 'CODE') { }
77 0 0 if @_ <= 1
78 0 0 @_ > 1 ? :
85 198 0 unless $_[0] =~ s/Class::Multimethods::SUPERCLASS_IS:://
99 26 1 if (@_)
102 0 26 unless ref $code eq 'CODE'
108 6 20 if not defined $_ or @types > $_
110 5 21 if not defined $_ or @types < $_
117 0 0 if $^W and exists $Class::Multimethods::dispatch{$name}{$sig}
269 0 1683 if $tried->{$sig}
275 135 1548 if ($match and ref $match eq 'CODE')
288 1520 28 unless (@$matches)
292 152 2897 if $candidate->[$i] =~ /[^\w:#]/
295 2 2895 if ($candidate->[$i] eq '#') { }
0 2895 elsif ($candidate->[$i] =~ /\AClass::Multimethods::SUPERCLASS_IS::(.+)/) { }
0 2895 elsif ($candidate->[$i] =~ /\AClass::Multimethods::SUPERCLASS_OF::(.+)/) { }
300 0 0 $1 eq '#' ? :
317 1010 120 unless @$matches
351 0 0 unless /::$/ and $_ ne $self
354 0 0 unless $_[0]
405 0 0 unless $Class::Multimethods::min_args{$multimethod}
411 0 0 if $typeset =~ /\*/
418 0 0 unless exists $ignore{$ancestor}
443 0 0 if @paramlists == 1
464 0 0 if $ambiguous_handler and ref $ambiguous_handler ne 'CODE'
466 0 0 if $no_match_handler and ref $no_match_handler ne 'CODE'
469 0 0 if ($case_count) { }
474 0 0 ref $_ eq 'ARRAY' ? :
484 0 0 unless ($case_count)
514 0 0 unless $Class::Multimethods::a->{'wrong_length'} - $Class::Multimethods::b->{'wrong_length'} or @{$Class::Multimethods::a->{'incomp'};} - @{$Class::Multimethods::b->{'incomp'};} or $Class::Multimethods::a->{'generic'} - $Class::Multimethods::b->{'generic'}
518 0 0 if ($ordered[0] and not @{$ordered[0]{'incomp'};})
528 0 0 if @{$ordered[$i]{'incomp'};} or $ordered[$i]{'wrong_length'} or $ordered[$i]{'sum_dist'} > $ordered[0]{'sum_dist'} or $ordered[$i]{'generic'} != $ordered[0]{'generic'}
531 0 0 if ($i > 1)
544 0 0 if ($winner and $winner->{'ambig'} and $ambiguous_handler) { }
0 0 elsif ($winner and @{$winner->{'incomp'};} || $winner->{'wrong_length'} and $no_match_handler) { }
562 0 0 if ($variant->{'ambig'}) { }
0 0 elsif (@{$variant->{'incomp'};} == 1) { }
0 0 elsif (@{$variant->{'incomp'};}) { }
0 0 elsif ($variant->{'wrong_length'}) { }
0 0 elsif ($first) { }
0 0 elsif ($variant->{'generic'} and $variant->{'sum_dist'} < $min_dist) { }
0 0 elsif ($variant->{'generic'}) { }
565 0 0 if $first
611 0 0 if @ambigs
612 0 0 if @fails
623 0 0 if $from eq $to
624 0 0 if $to eq '*'
625 0 0 if defined $distance{$from}{$to}
627 0 0 if ($parents{$from})
632 0 0 if (defined $distance)
658 0 0 if (@nexttypes != @$types)
669 0 0 if (not defined $nextdist) { }
0 0 elsif ($nextdist < 0) { }