Branch Coverage

blib/lib/Class/Trait.pm
Criterion Covered Total %
branch 192 314 61.1


line true false branch
24 104 1 if ($stash and $stash->can('NAME')) { }
31 0 101 if ($@)
55 0 0 unless DEBUG()
84 51 0 if (not $proto->isa('Class::Trait::Config')) { }
86 4 47 unless ($trait = ${"${class}::TRAITS";})
93 3 0 if $parent->can($NAME_FOR_DOES)
95 0 3 unless @result
96 3 1 if (@_)
106 43 6 if (@_) { }
108 29 14 if (exists $PACKAGE_DOES{$class}{$trait_name})
112 7 7 if $does
115 2 5 if ($class =~ /__ANON__/)
119 1 1 if $class->can($NAME_FOR_DOES)
129 3 2 if ($class =~ /__ANON__/)
133 1 1 if ($class->can($NAME_FOR_DOES))
138 1 1 if (exists $PACKAGE_DOES{$class})
192 2 68 unless @_
198 1 68 if ($_[0] eq 'debug') { }
39 28 elsif ($_[0] eq 'base') { }
209 1 39 if (defined(my $name_for_does = $_[1]))
216 0 29 if (DEBUG())
221 0 29 if DEBUG()
236 9 8 blessed $proto ? :
246 0 17 if $@
248 9 8 if (blessed $proto)
264 4 6 if ($package =~ /^(.*)?::__ANON__::/)
277 0 45 if (DEBUG())
281 12 33 if ($package->isa('Class::Trait::Base')) { }
295 0 33 if DEBUG()
299 0 44 if (DEBUG())
309 11 2 if keys %TRAITS_TO_CHECK
315 0 27 if (DEBUG())
323 0 21 if (DEBUG())
331 0 32 if (DEBUG())
337 4 0 if ($conflict)
341 2 30 if (@conflicting_methods)
346 0 30 if DEBUG()
348 0 30 if (DEBUG())
358 0 26 unless is_method_label($requirement)
362 4 22 unless ($package->can($requirement))
369 0 22 if DEBUG()
372 0 27 if DEBUG()
381 0 33 if (DEBUG())
388 0 32 if (DEBUG())
408 3 32 if (@_)
410 1 3 unless (is_method_label($name_for_does))
435 0 28 if $trait->name eq $trait_name
439 7 14 if $sub_trait_name eq $trait_name
442 8 7 if _recursive_does($CACHE{$sub_trait_name}, $trait_name)
455 0 33 if (DEBUG())
470 83 1 if (not defined &{"${package}::$method_label";} or $override_methods) { }
473 0 83 if DEBUG()
486 1 0 if DEBUG()
490 0 33 if DEBUG()
495 0 32 if (DEBUG())
512 21 1 if (not defined &{"${package}::($operator";} or $override_operators) { }
513 0 21 if DEBUG()
517 0 0 if DEBUG()
521 0 32 if DEBUG()
533 0 13 if DEBUG()
551 0 46 if (DEBUG())
564 0 55 if (DEBUG())
576 9 47 if (ref $trait_declarations[0] eq 'HASH')
577 0 9 if (DEBUG())
592 3 6 if (exists ${$trait_changes;}{'alias'})
593 0 3 if (DEBUG())
601 0 2 if DEBUG()
605 8 0 if (defined(my $excludes = ${$trait_changes;}{'exclude'}))
606 0 8 if (DEBUG())
610 6 2 unless 'ARRAY' eq ref $excludes
612 0 8 if DEBUG()
614 0 8 if DEBUG()
615 0 9 if DEBUG()
623 0 55 if DEBUG()
630 0 44 if (DEBUG())
648 6 50 if (exists $CACHE{$trait})
649 0 7 if DEBUG()
655 0 49 if (DEBUG())
664 9 41 if (exists $TRAIT_LIB{$trait}) { }
665 0 10 if DEBUG()
673 0 50 if DEBUG()
674 0 50 if ($@)
681 0 49 unless $trait->isa('Class::Trait::Base')
697 14 36 if ($trait->isa('Class::Trait::Base') and keys %{"${trait}::TRAITS";})
699 0 14 if (DEBUG())
705 0 15 if (DEBUG())
723 0 49 if (DEBUG())
749 3 11 COMPOSITE eq $trait->name ? :
767 0 14 if (DEBUG())
774 35 0 if (is_method_label($requirement)) { }
775 6 29 if (exists ${$trait_config->methods;}{$requirement})
776 0 6 if DEBUG()
784 0 0 if (exists ${$trait_config->overloads;}{$requirement})
785 0 0 if DEBUG()
792 0 29 if DEBUG()
795 0 14 if (DEBUG())
803 0 0 if (is_method_label($conflict)) { }
804 0 0 if (exists ${$trait_config->methods;}{$conflict})
805 0 0 if DEBUG()
813 0 0 if (exists ${$trait_config->overloads;}{$conflict})
814 0 0 if DEBUG()
821 0 0 if DEBUG()
825 0 15 if DEBUG()
836 0 50 unless defined $trait_config->name
840 0 50 if DEBUG()
846 25 25 if defined @{"${trait}::";}{'REQUIRES'}
852 0 50 unless defined $trait_config->name
856 3 50 if DEBUG()
865 258 102 unless defined &$method
868 7 95 unless _sub_package(\&$method) eq $trait
869 0 95 if (/(DESTROY|AUTOLOAD)/)
884 0 50 unless defined $trait_config->name
888 0 50 if DEBUG()
893 11 39 if keys %{"${trait}::OVERLOADS";}
906 0 49 if DEBUG()
912 0 7 if DEBUG()
925 0 8 if (DEBUG())
932 0 8 unless exists ${$trait_config->methods;}{$exclusion}
937 0 8 if DEBUG()
946 0 8 if DEBUG()
954 0 3 if DEBUG()
966 0 3 if DEBUG()
970 1 2 unless exists ${$trait_config->methods;}{$old_name}
975 0 2 if DEBUG()
984 0 2 if exists $overloads_by_method{$old_name}
988 0 3 if DEBUG()
1004 34 10 if (scalar @traits == 1)
1009 1 34 if DEBUG()
1013 0 10 if DEBUG()
1022 0 10 if DEBUG()
1027 0 20 if (DEBUG())
1037 0 20 if DEBUG()
1039 0 10 if DEBUG()
1044 0 10 if (DEBUG())
1052 0 10 if DEBUG()
1056 0 10 if DEBUG()
1066 0 20 if (DEBUG())
1071 0 68 if (exists ${$trait_config->conflicts;}{$method_label})
1072 0 0 if DEBUG()
1079 7 61 if (exists ${$trait_config->methods;}{$method_label}) { }
1083 4 3 if (not $trait_config->methods->{$method_label} eq $trait->methods->{$method_label}) { }
1090 0 4 if DEBUG()
1105 0 3 if DEBUG()
1111 0 61 if DEBUG()
1118 0 20 if DEBUG()
1123 0 20 if (DEBUG())
1128 0 32 if (exists ${$trait_config->conflicts;}{$overload})
1129 0 0 if DEBUG()
1136 4 28 if (exists ${$trait_config->overloads;}{$overload}) { }
1144 4 0 unless (${$trait_config->conflicts;}{$overload_method})
1145 0 4 if DEBUG()
1150 0 0 if DEBUG()
1164 0 28 if DEBUG()
1171 0 20 if DEBUG()
1178 0 20 if DEBUG()
1183 26 6 unless (exists ${$trait_config->methods;}{$requirement})
1184 0 26 if (DEBUG())