Branch Coverage

blib/lib/MooX/Pression.pm
Criterion Covered Total %
branch 169 312 54.1


line true false branch
29 85 145 if ($action eq '-gather') { }
25 120 elsif ($action eq '-go') { }
60 60 elsif ($action eq '-parent') { }
60 0 elsif ($action eq '-unparent') { }
32 60 102 if (my($kind, $pkg) = $k =~ /^(class|role|class_generator|role_generator):(.+)$/u) { }
33 0 60 unless $stack{$me}{$caller}
60 0 if (my(@stack) = @{[] unless $stack{$me}{$caller};})
34 60 0 if $stack[-1] eq $pkg
35 25 35 if (@stack)
48 0 25 if ($gather{$me}{$caller}{'_defer_role'})
52 0 25 if ($gather{$me}{$caller}{'_defer_role_generator'})
56 1 24 if ($gather{$me}{$caller}{'_defer_class_generator'})
59 5 20 if ($gather{$me}{$caller}{'_defer_class'})
63 0 22 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})
556 0 69 unless "$GRAMMAR" =~ m[<$name>(.+)</$name>]su
560 225 919 if (my($named_capture) = /# CAPTURE:(\w+)/u)
567 0 8 $opts{'anchor'} eq 'both' ? :
0 8 $opts{'anchor'} eq 'end' ? :
61 8 $opts{'anchor'} eq 'start' ? :
583 4 19 unless $sig
591 0 28 unless $sig
595 3 25 if ($sig =~ /^((?&PerlBlock)) $GRAMMAR/osux) { }
19 6 elsif ($sig =~ /^((?&MxpTypeSpec)) $GRAMMAR/osux) { }
614 2 26 if ($sig =~ /^\*((?&PerlIdentifier)) $GRAMMAR/osux) { }
26 0 elsif ($sig =~ /^((?&PerlVariable)) $GRAMMAR/osux) { }
633 0 28 if ($sig =~ /^\?/u) { }
2 26 elsif ($sig =~ /^=((?&PerlOWS))((?&PerlTerm)) $GRAMMAR/osux) { }
644 9 19 if ($sig)
645 0 9 unless $sig =~ /^,/u
654 0 19 if ($seen_named and $seen_pos)
661 0 0 if (grep $_->{'positional'}, @parsed)
668 0 0 if ($is_optional) { }
0 0 elsif ($p->{'default'}) { }
0 0 elsif ($p->{'name'} =~ /^[\@\%]/u) { }
688 2 26 if $seen_named
689 3 25 if ($p->{'name'} =~ /^[\@\%]/u) { }
690 0 3 if @parsed
698 2 1 if ($p->{'type'} eq 'Any')
699 1 1 substr($p->{'name'}, 0, 1) eq '%' ? :
706 3 25 if ($p->{'type_is_block'}) { }
712 5 23 if (exists $p->{'optional'} or exists $p->{'default'} or $p->{'slurpy'})
714 0 5 if exists $p->{'optional'}
715 2 3 if exists $p->{'default'}
716 3 2 if exists $p->{'slurpy'}
721 1 18 if $seen_named
724 0 19 if (@head or @tail)
727 0 0 $_->{'type_is_block'} ? :
728 0 0 $_->{'type_is_block'} ? :
729 0 0 $head_stuff ? :
0 0 $tail_stuff ? :
757 3 12 if ($rolelist =~ /^((?&PerlBlock)) $GRAMMAR/osux) { }
12 0 elsif ($rolelist =~ /^((?&PerlQualifiedIdentifier)) $GRAMMAR/osux) { }
772 4 11 if ($rolelist =~ /^\?/sux) { }
4 7 elsif ($rolelist =~ /^((?&PerlList)) $GRAMMAR/osux) { }
773 0 4 if $kind eq 'class'
783 3 12 if ($role_is_block) { }
789 4 11 if ($role_params)
794 1 14 if (length $rolelist)
795 0 1 unless $rolelist =~ /^,/u
808 0 0 if $attr =~ /^:optimize\b/u
811 0 2 if ($via)
812 0 0 $name =~ /^\{/u ? :
0 0 $via =~ /^\{/u ? :
819 0 2 unless ($has_sig)
821 0 0 $name =~ /^\{/u ? :
0 0 $optim ? :
831 0 2 $name =~ /^\{/u ? :
0 2 $optim ? :
848 1 0 if $attr =~ /^:optimize\b/u
851 10 1 if (defined $name) { }
852 9 1 if ($has_sig) { }
855 0 9 $name =~ /^\{/u ? :
1 8 $optim ? :
867 0 1 $name =~ /^\{/u ? :
0 1 $optim ? :
877 1 0 if ($has_sig) { }
880 0 1 $optim ? :
891 0 0 $optim ? :
908 0 0 if $attr =~ /^:optimize\b/u
909 0 0 if $attr =~ /^:alias\((.+)\)$/u
912 0 0 if ($has_sig) { }
915 0 0 $name =~ /^\{/u ? :
927 0 0 $name =~ /^\{/u ? :
942 0 0 if $attr =~ /^:optimize\b/u
945 1 0 if ($has_sig) { }
0 0 elsif ($kind eq 'around') { }
948 0 1 if ($kind eq 'around') { }
954 0 1 $name =~ /^\{/u ? :
0 1 $optim ? :
967 0 0 $name =~ /^\{/u ? :
0 0 $optim ? :
978 0 0 $name =~ /^\{/u ? :
0 0 $optim ? :
992 1 64 if ($kind eq 'abstract')
997 0 65 if ($kind eq 'interface')
1002 7 58 if ($name and $has_sig) { }
1 57 elsif ($has_sig) { }
53 4 elsif ($name) { }
1031 53 0 $code ? :
1062 13 12 unless defined $rawspec
1064 0 25 if (defined $default and $default =~ /\$self/u) { }
4 21 elsif (defined $default) { }
1074 2 23 $name =~ /^\{/u ? :
1084 0 3 $name =~ /^\{/u ? :
1090 2 1 if ($has_sig)
1092 0 2 $name =~ /^\{/u ? :
1131 23 2 unless exists $opts{'prefix'}
1132 25 0 unless exists $opts{'factory_package'}
1133 25 0 unless exists $opts{'type_library'}
1138 0 25 if ($opts{'declare'})
1141 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"
1155 25 0 if ($] >= 5.018) { }
0 0 elsif ($] >= 5.014) { }
1169 0 2 unless $$ref =~ _fetch_re('MxpIncludeSyntax', 'anchor', 'start')
1185 0 57 unless $$ref =~ _fetch_re('MxpClassSyntax', 'anchor', 'start')
1207 0 1 unless $$ref =~ _fetch_re('MxpAbstractSyntax', 'anchor', 'start')
1230 0 7 unless $$ref =~ _fetch_re('MxpRoleSyntax', 'anchor', 'start')
1252 0 0 unless $$ref =~ _fetch_re('MxpToolkitSyntax', 'anchor', 'start')
1261 0 0 if ($imports) { }
1268 0 0 if ($next =~ /^::(.+)$/u) { }
0 0 elsif ($next =~ /^[^\W0-9]/u) { }
1277 0 0 if $imports[0] eq ','
1293 0 0 unless $$ref =~ _fetch_re('MxpHookSyntax', 'anchor', 'start')
1309 0 1 unless $$ref =~ _fetch_re('MxpTypeNameSyntax', 'anchor', 'start')
1324 0 7 unless $$ref =~ _fetch_re('MxpExtendsSyntax', 'anchor', 'start')
1339 0 7 unless $$ref =~ _fetch_re('MxpWithSyntax', 'anchor', 'start')
1355 0 3 unless $$ref =~ _fetch_re('MxpRequiresSyntax', 'anchor', 'start')
1372 0 25 unless $$ref =~ _fetch_re('MxpHasSyntax', 'anchor', 'start')
1386 12 13 $has_spec ? :
4 21 $has_default ? :
1394 0 6 unless $$ref =~ _fetch_re('MxpConstantSyntax', 'anchor', 'start')
1411 0 11 unless $$ref =~ _fetch_re('MxpMethodSyntax', 'anchor', 'start')
1426 1 10 $attributes ? :
1438 0 0 unless $$ref =~ _fetch_re('MxpMultiSyntax', 'anchor', 'start')
1449 0 0 $attributes ? :
1462 0 1 unless $$ref =~ _fetch_re('MxpModifierSyntax', 'anchor', 'start')
1473 0 1 $attributes ? :
1482 2 0 if ($$ref =~ _fetch_re('MxpFactorySyntax', 'anchor', 'start'))
1486 0 2 $attributes ? :
1491 0 0 unless $$ref =~ _fetch_re('MxpFactoryViaSyntax', 'anchor', 'start')
1510 0 1 unless $$ref =~ _fetch_re('MxpCoerceSyntax', 'anchor', 'start')
1518 0 1 if ($from =~ /^\{/u) { }
1 0 elsif (not $from =~ /^(q\b)|(qq\b)|"|'/u) { }
1524 0 1 if ($via =~ /^\{/u) { }
1 0 elsif (not $via =~ /^(q\b)|(qq\b)|"|'/u) { }
1531 1 0 $code ? :
1537 3 22 unless eval "package $caller; use MooX::Pression::_Gather -go; 1"
1563 0 1 if (@_ == 1 and ref $_[0] eq 'HASH') { }
0 1 elsif (@_ == 1 and ref $_[0] eq 'ARRAY') { }
1630 0 0 if @imports
1672 0 2 if ref $file eq 'ARRAY'
1748 0 12 if exists $package_dfn->{$forbidden}