Branch Coverage

blib/lib/MooX/Pression.pm
Criterion Covered Total %
branch 173 310 55.8


line true false branch
29 87 148 if ($action eq '-gather') { }
26 122 elsif ($action eq '-go') { }
61 61 elsif ($action eq '-parent') { }
61 0 elsif ($action eq '-unparent') { }
32 61 106 if (my($kind, $pkg) = $k =~ /^(class|role|class_generator|role_generator):(.+)$/u) { }
33 0 61 unless $stack{$me}{$caller}
61 0 if (my(@stack) = @{[] unless $stack{$me}{$caller};})
34 61 0 if $stack[-1] eq $pkg
35 25 36 if (@stack)
48 0 26 if ($gather{$me}{$caller}{'_defer_role'})
52 0 26 if ($gather{$me}{$caller}{'_defer_role_generator'})
56 1 25 if ($gather{$me}{$caller}{'_defer_class_generator'})
59 5 21 if ($gather{$me}{$caller}{'_defer_class'})
63 0 23 if ($gather{$me}{$caller}{'debug'})
83 3 2 unless $classes
91 7 17 if $spec->{'_depth'} > $max_depth
95 60 24 unless $spec->{'_depth'} == $depth
98 3 21 unless ($class_hash{$parent_key})
593 0 88 unless "$GRAMMAR" =~ m[<$name>(.+)</$name>]su
597 201 1035 if (my($named_capture) = /# CAPTURE:(\w+)/u)
604 0 23 $opts{'anchor'} eq 'both' ? :
0 23 $opts{'anchor'} eq 'end' ? :
65 23 $opts{'anchor'} eq 'start' ? :
620 4 19 unless $sig
628 0 28 unless $sig
632 3 25 if ($sig =~ /^((?&PerlBlock)) $GRAMMAR/osux) { }
19 6 elsif ($sig =~ /^((?&MxpTypeSpec)) $GRAMMAR/osux) { }
651 2 26 if ($sig =~ /^\*((?&PerlIdentifier)) $GRAMMAR/osux) { }
26 0 elsif ($sig =~ /^((?&PerlVariable)) $GRAMMAR/osux) { }
670 0 28 if ($sig =~ /^\?/u) { }
2 26 elsif ($sig =~ /^=((?&PerlOWS))((?&PerlTerm)) $GRAMMAR/osux) { }
681 9 19 if ($sig)
682 0 9 unless $sig =~ /^,/u
691 0 19 if ($seen_named and $seen_pos)
698 0 0 if (grep $_->{'positional'}, @parsed)
705 0 0 if ($is_optional) { }
0 0 elsif ($p->{'default'}) { }
0 0 elsif ($p->{'name'} =~ /^[\@\%]/u) { }
725 2 26 if $seen_named
726 3 25 if ($p->{'name'} =~ /^[\@\%]/u) { }
727 0 3 if @parsed
735 2 1 if ($p->{'type'} eq 'Any')
736 1 1 substr($p->{'name'}, 0, 1) eq '%' ? :
743 3 25 if ($p->{'type_is_block'}) { }
749 5 23 if (exists $p->{'optional'} or exists $p->{'default'} or $p->{'slurpy'})
751 0 5 if exists $p->{'optional'}
752 2 3 if exists $p->{'default'}
753 3 2 if exists $p->{'slurpy'}
758 1 18 if $seen_named
761 0 19 if (@head or @tail)
764 0 0 $_->{'type_is_block'} ? :
765 0 0 $_->{'type_is_block'} ? :
766 0 0 $head_stuff ? :
0 0 $tail_stuff ? :
794 3 12 if ($rolelist =~ /^((?&PerlBlock)) $GRAMMAR/osux) { }
12 0 elsif ($rolelist =~ /^((?&PerlQualifiedIdentifier)) $GRAMMAR/osux) { }
809 4 11 if ($rolelist =~ /^\?/sux) { }
4 7 elsif ($rolelist =~ /^((?&PerlList)) $GRAMMAR/osux) { }
810 0 4 if $kind eq 'class'
820 3 12 if ($role_is_block) { }
826 4 11 if ($role_params)
831 1 14 if (length $rolelist)
832 0 1 unless $rolelist =~ /^,/u
842 0 28 unless $names
854 0 0 if $attr =~ /^:optimize\b/u
857 0 2 if ($via)
858 0 0 $name =~ /^\{/u ? :
0 0 $via =~ /^\{/u ? :
865 0 2 unless ($has_sig)
867 0 0 $name =~ /^\{/u ? :
0 0 $optim ? :
877 0 2 $name =~ /^\{/u ? :
0 2 $optim ? :
894 1 0 if $attr =~ /^:optimize\b/u
897 12 1 if (defined $name) { }
898 9 3 if ($has_sig) { }
901 0 9 $name =~ /^\{/u ? :
1 8 $optim ? :
913 0 3 $name =~ /^\{/u ? :
0 3 $optim ? :
923 1 0 if ($has_sig) { }
926 0 1 $optim ? :
937 0 0 $optim ? :
954 0 0 if $attr =~ /^:optimize\b/u
955 0 0 if $attr =~ /^:alias\((.+)\)$/u
958 0 0 if ($has_sig) { }
961 0 0 $name =~ /^\{/u ? :
973 0 0 $name =~ /^\{/u ? :
988 0 0 if $attr =~ /^:optimize\b/u
995 0 3 /^\{/u ? :
997 1 1 if ($has_sig) { }
1 0 elsif ($kind eq 'around') { }
1000 0 1 if ($kind eq 'around') { }
1006 0 1 $optim ? :
1019 0 1 $optim ? :
1030 0 0 $optim ? :
1044 1 65 if ($kind eq 'abstract')
1049 0 66 if ($kind eq 'interface')
1054 7 59 if ($name and $has_sig) { }
1 58 elsif ($has_sig) { }
54 4 elsif ($name) { }
1083 54 0 $code ? :
1114 14 12 unless defined $rawspec
1116 0 26 if (defined $default and $default =~ /\$self/u) { }
5 21 elsif (defined $default) { }
1129 3 25 $name =~ /^\{/u ? :
1141 0 3 $name =~ /^\{/u ? :
1147 2 1 if ($has_sig)
1149 0 2 $name =~ /^\{/u ? :
1188 24 2 unless exists $opts{'prefix'}
1189 26 0 unless exists $opts{'factory_package'}
1190 26 0 unless exists $opts{'type_library'}
1195 0 26 if ($opts{'declare'})
1198 0 0 unless eval "\n\t\t\t\tsub ${caller}::$name () { goto \\&${types}::$name }\n\t\t\t\tsub ${caller}::is_$name (\$) { goto \\&${types}::is_$name }\n\t\t\t\tsub ${caller}::assert_$name (\$) { goto \\&${types}::assert_$name }\n\t\t\t\t1;\n\t\t\t"
1212 26 0 if ($] >= 5.018) { }
0 0 elsif ($] >= 5.014) { }
1226 0 2 unless $$ref =~ _fetch_re('MxpIncludeSyntax', 'anchor', 'start')
1242 0 58 unless $$ref =~ _fetch_re('MxpClassSyntax', 'anchor', 'start')
1264 0 1 unless $$ref =~ _fetch_re('MxpAbstractSyntax', 'anchor', 'start')
1287 0 7 unless $$ref =~ _fetch_re('MxpRoleSyntax', 'anchor', 'start')
1309 0 0 unless $$ref =~ _fetch_re('MxpToolkitSyntax', 'anchor', 'start')
1318 0 0 if ($imports) { }
1325 0 0 if ($next =~ /^::(.+)$/u) { }
0 0 elsif ($next =~ /^[^\W0-9]/u) { }
1334 0 0 if $imports[0] eq ','
1350 0 0 unless $$ref =~ _fetch_re('MxpHookSyntax', 'anchor', 'start')
1366 0 1 unless $$ref =~ _fetch_re('MxpTypeNameSyntax', 'anchor', 'start')
1381 0 7 unless $$ref =~ _fetch_re('MxpExtendsSyntax', 'anchor', 'start')
1396 0 7 unless $$ref =~ _fetch_re('MxpWithSyntax', 'anchor', 'start')
1412 0 3 unless $$ref =~ _fetch_re('MxpRequiresSyntax', 'anchor', 'start')
1429 0 26 unless $$ref =~ _fetch_re('MxpHasSyntax', 'anchor', 'start')
1441 12 14 $has_spec ? :
5 21 $has_default ? :
1449 0 6 unless $$ref =~ _fetch_re('MxpConstantSyntax', 'anchor', 'start')
1466 0 13 unless $$ref =~ _fetch_re('MxpMethodSyntax', 'anchor', 'start')
1481 1 12 $attributes ? :
1493 0 0 unless $$ref =~ _fetch_re('MxpMultiSyntax', 'anchor', 'start')
1504 0 0 $attributes ? :
1517 0 2 unless $$ref =~ _fetch_re('MxpModifierSyntax', 'anchor', 'start')
1528 0 2 $attributes ? :
1537 2 0 if ($$ref =~ _fetch_re('MxpFactorySyntax', 'anchor', 'start'))
1541 0 2 $attributes ? :
1546 0 0 unless $$ref =~ _fetch_re('MxpFactoryViaSyntax', 'anchor', 'start')
1565 0 1 unless $$ref =~ _fetch_re('MxpCoerceSyntax', 'anchor', 'start')
1573 0 1 if ($from =~ /^\{/u) { }
1 0 elsif (not $from =~ /^(q\b)|(qq\b)|"|'/u) { }
1579 0 1 if ($via =~ /^\{/u) { }
1 0 elsif (not $via =~ /^(q\b)|(qq\b)|"|'/u) { }
1586 1 0 $code ? :
1592 3 23 unless eval "package $caller; use MooX::Pression::_Gather -go; 1"
1618 0 1 if (@_ == 1 and ref $_[0] eq 'HASH') { }
0 1 elsif (@_ == 1 and ref $_[0] eq 'ARRAY') { }
1685 0 0 if @imports
1727 0 2 if ref $file eq 'ARRAY'
1803 0 12 if exists $package_dfn->{$forbidden}