Condition Coverage

blib/lib/Sub/MultiMethod.pm
Criterion Covered Total %
condition 69 108 63.8


and 3 conditions

line !l l&&!r l&&r condition
119 52 174 0 @$mmc and $spec->{'method'} != $mmc->[0]{'method'}
274 104 2 0 $spec{'named'} and $spec{'positional'}
515 2 0 2 $spec{'is_monomethod'} && $alias eq $aliases[0]
526 4 26 72 defined $sub_name and not $spec{'no_dispatcher'}
528 16 72 10 not $hooked{$target} and "Role::Hooks"->is_role($target)
581 0 0 4 $target and $sub_name
605 48 4 34 $existing and $me->known_dispatcher($existing)
647 31 14 78 $is_method and is_Object($argv->[0])
31 4 10 $is_method and &is_ClassName($argv->[0])
731 734 0 2 $_->{'want'} && $wantarray
734 0 740 14 defined $_->{'compiled'}{'min_args'} && $_->{'compiled'}{'min_args'} > $argc
28 708 4 defined $_->{'compiled'}{'max_args'} && $_->{'compiled'}{'max_args'} < $argc

or 2 conditions

line l !l condition
90 334 76 $mm->{$method_key} ||= []
228 22 58 $args->{'api_call'} || 'install_candidate'
275 0 0 $spec{'multiple'} ||= []
441 0 4 $spec{'alias'} ||= []
613 32 16 $is_method || 0
661 85 38 $CACHE{"$pkg/$search_from/$method_name/$is_method"} ||= [$me->get_all_multimethod_candidates($search_from, $method_name, $is_method)]

or 3 conditions

line l !l&&r !l&&!r condition
145 2 0 36 is_Int($method_name) or is_ScalarRef($method_name)
222 0 0 80 ref $target or not defined $target
234 0 0 106 is_ArrayRef($_[0]) or is_HashRef($_[0])
250 0 0 0 $spec{'positional'} ||= delete $spec{'pos'}
251 0 0 0 $spec{'multiple'} ||= delete $spec{'multi'}
289 104 2 0 exists $spec{'code'} or exists $spec{'return'}
2 0 0 exists $spec{'code'} or exists $spec{'return'} or exists $spec{'die'}
362 342 8 264 $KNOWN_OPTIONS{$key} or $key =~ /^_/
373 106 0 0 $tp{'package'} ||= $target
374 102 0 4 $tp{'subname'} ||= ref $sub_name ? "__ANON__" : $sub_name
388 2 0 104 $tp{'named'} or $tp{'pos'}
0 100 4 $tp{'named'} or $tp{'pos'} or $tp{'positional'}
100 0 4 $tp{'named'} or $tp{'pos'} or $tp{'positional'} or $tp{'multi'}
0 0 4 $tp{'named'} or $tp{'pos'} or $tp{'positional'} or $tp{'multi'} or $tp{'multiple'}
505 26 10 0 $check ||= Type::Params::signature(%sig_spec)
546 0 10 0 is_CodeRef($$sub_name) or is_Object($$sub_name)
594 86 0 0 exists &mro::get_linear_isa or eval {
687 0 152 0 $candidate->{'signature_spec'}{'pos'} or $candidate->{'signature_spec'}{'positional'}
746 7 186 474 !ref($smiple) || &$smiple($argv)
777 1 1 72 $candidate->{'want'} or $candidate->{'if'}