Branch Coverage

lib/UR/Role/Prototype.pm
Criterion Covered Total %
branch 100 128 78.1


line true false branch
77 0 42 unless ($desc->{'role_name'})
87 1 41 if ($extra and %$extra)
122 0 84 unless (UR::Util::ensure_arrayref($new_role, $key))
161 0 4256 unless $prop_meta
184 3 50 unless @overload_ops
202 73 11 unless overload::Overloaded($role_name)
210 11 814 $op eq 'fallback' ? :
213 16 809 if ($overloaded)
216 14 2 $subref eq \&overload::nil ? :
227 0 12763 if (ref $class or ref $desc ne 'HASH')
232 12703 59 unless $desc->{'roles'} and @{$desc->{'roles'};}
279 2 50 if (my(@missing) = grep({not exists $got_params->{$_};} keys %expected_params))
282 1 49 if (my(@extra) = grep({not exists $expected_params{$_};} keys %$got_params))
295 3 32 if ($valid_signals)
324 3 78 unless ($role)
344 1 1 if exists $class_property_is_id_by{$_}
346 1 65 if (@conflict)
368 3 20 if (my $conflict = $source_for_properties_to_add{$property_name})
375 3 17 if exists $properties_from_class->{$property_name}
397 10 16 if $op eq 'fallback'
398 1 15 if (my $conflict = $source_for_overloads_to_add{$op})
403 1 14 if exists $overloads_from_class->{$op}
410 4 36 if defined $fallback
426 1 5 unless ($class_name->can($mod->name))
440 40 57 unless (@_)
446 5 52 if (defined $value and not defined $fallback)
451 49 3 unless defined $fallback and defined $value
452 2 1 unless $fallback xor $value
454 0 0 defined $value ? :
1 0 $value ? :
1 0 defined $fallback ? :
0 1 $fallback ? :
469 183 751 if defined $desc->{$meta_prop_name} and $meta_prop_name ne 'valid_signals'
470 735 16 unless defined $role->$meta_prop_name
472 12 4 if ($meta_prop_name ne 'valid_signals') { }
473 1 11 if (exists $meta_properties_to_add{$meta_prop_name})
498 3 12 unless ($found_properties_and_methods{$requirement} ||= _class_desc_lineage_has_method_or_property($desc, $requirement))
523 2 75 if (@conflicts)
525 0 2 @conflicts > 1 ? :
530 0 2 $plural ? :
542 4 77 ref $_ ? :
543 12763 0 $desc->{'roles'} ? :
548 79069 7 unless @overrides
552 1 6 if (@missing_role_names)
569 6 2567 if (my(@role_names) = UR::AttributeHandlers::get_overrides_for_coderef($this_class_methods{$method_name}))
586 3 68 if (@conflict_methods)
587 0 3 scalar @conflict_methods > 1 ? :
588 0 3 scalar @conflict_methods > 1 ? :
594 3 1 if ($source_class_name->can($conflicting_method_name))
610 1 67 if (@missing_methods)
611 0 1 scalar @missing_methods > 1 ? :
625 5 5 if (my $can = $class_name->can($requirement))
632 0 5 if $seen{$parent}++
634 2 3 if (my $can = $parent->can($requirement))
639 0 3 if (my $prop_meta = $parent_meta->property($requirement))
660 1 48 if (@conflicting)
661 0 1 scalar @conflicting > 1 ? :
662 0 1 scalar @conflicting > 1 ? :
694 1 15 ref $impl ? :
711 0 35 if ($exception)
736 0 0 if (defined $func and $func eq 'role' and @params > 1 and $role_name ne 'UR::Role') { }
738 0 0 if (@params == 2 and ref $params[1] eq 'HASH') { }
0 0 elsif (@params == 2 and ref $params[1] eq 'ARRAY') { }
748 0 0 unless ($role)