Branch Coverage

blib/lib/Object/HashBase.pm
Criterion Covered Total %
branch 85 116 73.2


line true false branch
20 5 0 if (eval { do { require Class::XSAccessor; 'Class::XSAccessor'->VERSION(1.19); 1 } }) { }
39 5 0 $] >= 5.01 && require mro ? :
43 30 19 unless $INC{'Role/Tiny.pm'}
44 8 11 'Role::Tiny'->is_role($pkg) ? :
70 50 0 if not $Object::HashBase::VERSION{$into} or $Object::HashBase::VERSION{$into} > $ver
74 85 0 if (defined $arg and length $arg)
76 4 81 if ($p eq "\@")
80 11 70 if ($p eq "&")
92 1 3 unless ($INC{$pm})
94 1 0 unless (eval { do { require $pm; 1 } })
99 3 0 unless grep {$_ eq $parent;} @{"${into}::ISA";}
109 8 41 _is_role($into) ? :
111 11 38 if ($add_new and my $have_new = $into->can("new"))
113 3 8 unless $new_lookup->{$have_new}
118 38 11 $add_new ? :
0 11 unless $Object::HashBase::ATTR_SUBS{$_}
124 286 127 if (ref $v eq 'CODE') { }
133 10 39 if (@roles)
134 0 10 if $] < "5.01"
137 0 10 unless ($INC{'Role/Tiny.pm'})
139 0 0 unless (eval { do { require Role::Tiny; 1 } })
144 0 10 unless ("Role::Tiny"->can("is_role"))
153 1 10 unless ($INC{$pm})
155 1 0 unless (eval { do { require $pm; 1 } })
160 1 9 unless "Role::Tiny"->is_role($role)
164 1 8 unless exists $Object::HashBase::VERSION{$role}
170 2 6 if defined &{"${into}::$const";}
197 11 59 if $spec->{'strip'}
206 66 4 if ($spec->{'reader'})
207 0 66 if ($use_gen) { }
66 0 elsif (not $spec->{'no_xs'}) { }
218 61 9 if ($spec->{'writer'}) { }
3 6 elsif ($spec->{'read_only'}) { }
2 4 elsif ($spec->{'dep_writer'}) { }
219 0 61 if ($use_gen) { }
61 0 elsif (not $spec->{'no_xs'}) { }
230 0 3 $use_gen ? :
233 0 2 $use_gen ? :
236 0 70 if ($spec->{'custom'})
253 0 9 if ("0.004" > ($Object::HashBase::VERSION{$pkg} || 0))
259 9 0 $own ? :
260 18 3 unless $seen{$a}++
275 8 30 $__pre_init ? :
278 8 30 $__post_init ? :
285 4 16 if (@_ == 1) { }
289 1 3 if ($type eq 'HASH') { }
293 0 3 unless $type eq "ARRAY"
300 1 10 unless my $key = shift @attributes
312 12 7 unless exists $Object::HashBase::CAN_CACHE{$class}
315 4 15 if $Object::HashBase::CAN_CACHE{$class}
328 38 0 unless defined &{"${into}::new";}
329 38 0 unless defined &{"${into}::add_pre_init";}
330 38 0 unless defined &{"${into}::add_post_init";}
331 38 0 unless defined &{"${into}::_pre_init";}
332 38 0 unless defined &{"${into}::_post_init";}
357 8 0 unless grep {$_ eq $role;} @{$$self{"roles"};}
362 0 7 unless @{$self->{'roles'};}
365 0 7 unless ($ok)