Condition Coverage

blib/lib/Jojo/Role/Tiny.pm
Criterion Covered Total %
condition 35 68 51.4


and 3 conditions

line !l l&&!r l&&r condition
33 17 0 0 "$]" < 5.011 && !("$]" >= 5.009004 && "$]" < 5.010001)
209 0 0 0 $_->can($method) && !$COMPOSED{'role'}{$_}{'modifiers_only'}{$method}
271 0 8 0 $me->can('role_application_steps') == \&Jojo::Role::Tiny::role_application_steps && $me->can('apply_single_role_to_package') != \&Jojo::Role::Tiny::apply_single_role_to_package
0 8 0 $me ne 'Jojo::Role::Tiny' and exists $BACKCOMPAT_HACK{$me} ? $BACKCOMPAT_HACK{$me} : $BACKCOMPAT_HACK{$me} = $me->can('role_application_steps') == \&Jojo::Role::Tiny::role_application_steps && $me->can('apply_single_role_to_package') != \&Jojo::Role::Tiny::apply_single_role_to_package
410 41 0 0 $i =~ /^\(/ and defined &overload::nil && $methods->{$i} == \&overload::nil || defined &overload::_nil && $methods->{$i} == \&overload::_nil
468 0 32 13 $to->can('DOES') and $to->can('DOES') != ('UNIVERSAL'->can('DOES') || 0)
490 99 0 80 $INFO{$role} && ($INFO{$role}{'is_role'} || $INFO{$role}{'not_methods'})

or 2 conditions

line l !l condition
100 0 0 $INFO{$target}{'modifiers'} ||= []
105 0 0 $INFO{$target}{'requires'} ||= []
134 19 20 $APPLIED_TO{$to} ||= {}
219 0 39 $APPLIED_TO{$new_name} ||= {}
325 0 9 $INFO{$role}{'modifiers'} || []
352 1 4 $to_info->{'requires'} ||= []
373 55 46 $info->{'methods'} ||= {map({no strict 'refs'; my $code = exists &{"${role}::$_";} ? \&{"${role}::$_";} : undef; !$code || exists $not_methods->{$code} ? () : ($_, $code);} grep((!ref($stash->{$_}) || ref $stash->{$_} eq 'CODE'), keys %$stash))}
396 0 136 ref $stash->{$_} || *{$stash->{$_};}{'CODE'}
426 1 1 $info ? $info->{'modifiers'} : $COMPOSED{'modifiers'}{$to} ||= []
468 45 0 'UNIVERSAL'->can('DOES') || 0

or 3 conditions

line l !l&&r !l&&!r condition
85 33 262 0 *$_{'CODE'} || ()
155 0 7 0 $COMPOSED{'abbrev'}{$new_name} ||= do { my $abbrev = substr($new_name, 0, 250 - length($role_suffix)); $abbrev =~ s/(?
295 31 19 0 $COMPOSITE_INFO{join '|', sort(@roles)} ||= do { foreach my $role (@roles) { _load_module($role); } ; my %methods; foreach my $role (@roles) { my $this_methods = $me->_concrete_methods_of($role); $methods{$_}{$this_methods->{$_}} = $role foreach (keys %$this_methods); } ; my %requires; @requires{map @{[] unless $INFO{$_}{'requires'};}, @roles} = (); delete $requires{$_} foreach (keys %methods); delete $methods{$_} foreach (grep((keys %{$methods{$_};} == 1), keys %methods)); +{'conflicts', \%methods, 'requires', [keys %requires]} }
348 39 21 23 $requires or $INFO{$name}{'requires'}
372 66 1 43 !$code || exists $not_methods->{$code}
373 110 0 0 !ref($stash->{$_}) || ref $stash->{$_} eq 'CODE'
410 0 0 0 defined &overload::nil && $methods->{$i} == \&overload::nil || defined &overload::_nil && $methods->{$i} == \&overload::_nil
470 32 0 0 $to->can('DOES') || $to->can('isa') || $FALLBACK
482 9 25 0 ref $proto || $proto