Branch Coverage

blib/lib/MOP/Internal/Util.pm
Criterion Covered Total %
branch 59 110 53.6


line true false branch
30 0 4 unless defined $stash
32 2 2 if (my $name = B::svref_2object($stash)->NAME)
40 0 1135 unless defined $stash
47 0 91 unless defined $stash
54 0 546 unless defined $stash
61 0 611 unless defined $stash
69 0 1627 unless defined $stash
71 0 1627 unless defined $name
73 0 1627 unless defined $slot
78 156 1471 unless exists $stash->{$name}
84 1471 0 if ($slot eq 'CODE' and $stash->{$name} eq '-1' or ref $stash->{$name} ne 'GLOB')
98 0 4 unless defined $stash
100 0 4 unless defined $name
102 0 4 unless defined $value_ref
124 0 5 unless $cv
126 0 5 unless $cv and ref $cv eq 'CODE'
137 93 26 unless $object and &Scalar::Util::blessed($object)
139 26 0 if &Scalar::Util::reftype($object) eq 'CODE'
141 0 0 unless Devel::OverloadInfo::is_overloaded($object)
147 0 929 unless $cv
149 0 929 unless $cv and ref $cv eq 'CODE' or CAN_COERCE_TO_CODE_REF($cv)
157 0 166 unless $glob
163 1 165 if ref \$glob eq 'SCALAR' and defined $glob
166 0 165 if ref $glob and ref $glob ne 'CODE'
169 0 165 ref $glob ? :
141 24 if (my $code = ref $glob ? $glob : *{$glob;}{'CODE'})
179 0 3 unless defined $in_pkg
181 0 3 unless defined $name
185 1 2 unless (eval "sub ${in_pkg}::$name; 1;")
191 0 3 unless $cv
193 0 3 unless defined $in_pkg
195 0 3 unless $cv and ref $cv eq 'CODE' or CAN_COERCE_TO_CODE_REF($cv)
204 0 422 unless defined $in_pkg
206 0 422 unless defined $name
208 0 422 unless $cv and ref $cv eq 'CODE' or CAN_COERCE_TO_CODE_REF($cv)
212 0 422 unless exists $opts{'set_subname'}
219 1 421 $opts{'set_subname'} ? :
227 0 4 unless $stash and ref $stash eq 'HASH'
229 0 4 unless defined $name
235 4 0 if (my $glob = $stash->{$name})
242 4 16 if (my $val = *{$glob;}{$slot})
274 0 16 unless &Scalar::Util::blessed($meta)
276 0 16 unless $roles and ref $roles eq 'ARRAY' and scalar @$roles != 0
281 0 18 unless scalar grep({$r eq $_;} @$roles)
291 0 16 if scalar keys %$slot_conflicts
296 0 0 if $meta->has_slot($name)
311 0 0 if scalar keys %$method_conflicts and scalar grep({not $meta->has_method($_);} keys %$method_conflicts)
317 3 0 if $meta->name->can($name)
321 0 16 if scalar keys %$required_methods
326 0 419 if $meta->has_method($name)
343 0 16 if scalar @roles == 0
353 0 0 if (exists $slots{$name} and $slots{$name} != $slot->initializer) { }
380 0 16 if scalar @roles == 0
400 0 419 if (exists $methods{$name} and $methods{$name} != $m->body) { }
417 0 419 if exists $required{$name} and not exists $conflicts{$name}