Branch Coverage

blib/lib/Class/Std.pm
Criterion Covered Total %
branch 102 128 79.6


line true false branch
42 98 100 unless @unhandled
55 63 573 if $candidate and $candidate == $sub_ref
87 15 60 $raw ? :
96 83 222 $_[0] =~ /$matcher/ ? :
110 1 66 unless $attr =~ /\A ATTRS? \s* (?: \( (.*) \) )? \z/msx
112 61 5 if (my $config = $1)
117 23 38 if ($getter = _extract_get($config) || $name)
123 9 52 if ($setter = _extract_set($config) || $name)
126 0 4 unless @_ == 2
154 2 4 unless exists $$attr_ref{'ref'}{$id}
187 18 45 if ($attr eq 'CUMULATIVE') { }
6 39 elsif ($attr =~ /\A CUMULATIVE \s* [(] \s* BASE \s* FIRST \s* [)] \z/msx) { }
4 35 elsif ($attr =~ /\A RESTRICTED \z/msx) { }
2 33 elsif ($attr =~ /\A PRIVATE \z/msx) { }
33 0 elsif (exists $OVERLOADER_FOR{$attr}) { }
212 13865 67 if exists $_hierarchy_of{$class}
225 31 4 $b->isa($a) ? :
92 35 $a->isa($b) ? :
237 28 20 if exists $_reverse_hierarchy_of{$class}
251 3 3 $b->isa($a) ? :
17 6 $a->isa($b) ? :
265 29 8 if keys(%restricted) + keys(%private) + keys(%cumulative) + keys(%anticumulative) + keys(%overload) == 0
279 0 4 unless my $original = *{$sub_name;}{'CODE'}
286 11 5 unless $caller =~ /^(?: Class::Std | attributes )$/msx
288 7 4 if not $caller or $caller->isa($package) or $package->isa($caller)
302 0 2 unless my $original = *{$sub_name;}{'CODE'}
307 1 3 if $caller eq $package
325 4 33 unless my $sub_ref = $cumulative_named{$name}{$parent}
326 0 33 if $name eq 'AUTOLOAD'
327 9 24 unless (defined $list_context)
332 0 24 if ($list_context) { }
339 6 4 unless defined $list_context
340 0 4 if $list_context
352 0 6 if ($cumulative_named{$name})
354 0 0 unless $other_package->isa($package) or $package->isa($other_package)
373 2 12 unless my $sub_ref = $anticumulative_named{$name}{$parent}
374 0 12 unless (defined $list_context)
379 0 12 if ($list_context) { }
386 0 2 unless defined $list_context
387 0 2 if $list_context
402 0 33 if $@
420 0 23 unless keys %{$class . '::';}
422 0 23 if @_ > 1 and ref $arg_ref ne 'HASH'
433 27 17 unless $$arg_ref{$base_class}
438 16 28 if (my $build_ref = *{$base_class . '::BUILD';}{'CODE'})
446 14 65 if defined $$attr_ref{'ref'}{$new_obj_id}
449 49 16 if (defined $$attr_ref{'init_arg'} and exists $$arg_set{$$attr_ref{'init_arg'}}) { }
15 1 elsif (defined $$attr_ref{'default'}) { }
459 8 7 if ($@)
466 0 1 if (defined $$attr_ref{'init_arg'})
476 0 23 if @missing_inits
487 2 42 if (my $init_ref = *{$base_class . '::START';}{'CODE'})
505 0 0 if @names == 0
507 0 0 @names == 2 ? :
0 0 @names == 1 ? :
522 10 43 if (my $demolish_ref = *{$base_class . '::DEMOLISH';}{'CODE'})
538 12 8 unless (defined $ident)
542 20 17 if (my $automethod_ref = *{$parent_class . '::AUTOMETHOD';}{'CODE'})
545 15 4 if (my $method_impl = &$automethod_ref($invocant, $ident, @_[1 .. $#_]))
552 4 0 ref $invocant ? :
562 90253 1 if (defined $invocant)
563 76378 13875 if (my $sub_ref = &$real_can(@_))
569 9 41580 if (my $automethod_ref = *{$parent_class . '::AUTOMETHOD';}{'CODE'})
572 6 2 if (my $method_impl = &$automethod_ref(@_))