Branch Coverage

blib/lib/MooX/Pression.pm
Criterion Covered Total %
branch 211 354 59.6


line true false branch
29 96 163 if ($action eq '-gather') { }
29 134 elsif ($action eq '-go') { }
67 67 elsif ($action eq '-parent') { }
67 0 elsif ($action eq '-unparent') { }
32 67 118 if (my($kind, $pkg) = $k =~ /^(class|role|class_generator|role_generator):(.+)$/u) { }
33 0 67 unless $stack{$me}{$caller}
67 0 if (my(@stack) = @{[] unless $stack{$me}{$caller};})
34 67 0 if $stack[-1] eq $pkg
35 25 42 if (@stack)
48 0 29 if ($gather{$me}{$caller}{'_defer_role'})
52 0 29 if ($gather{$me}{$caller}{'_defer_role_generator'})
56 1 28 if ($gather{$me}{$caller}{'_defer_class_generator'})
59 5 24 if ($gather{$me}{$caller}{'_defer_class'})
63 0 26 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})
618 0 105 unless "$GRAMMAR" =~ m[<$name>(.+)</$name>]su
622 243 1253 if (my($named_capture) = /# CAPTURE:(\w+)/u)
629 0 28 $opts{'anchor'} eq 'both' ? :
0 28 $opts{'anchor'} eq 'end' ? :
77 28 $opts{'anchor'} eq 'start' ? :
645 5 26 unless $sig
653 0 37 unless $sig
657 3 34 if ($sig =~ /^((?&PerlBlock)) $GRAMMAR/osux) { }
28 6 elsif ($sig =~ /^((?&MxpTypeSpec)) $GRAMMAR/osux) { }
676 5 32 if ($sig =~ /^\*((?&PerlIdentifier)) $GRAMMAR/osux) { }
32 0 elsif ($sig =~ /^((?&PerlVariable)) $GRAMMAR/osux) { }
695 3 34 if ($sig =~ /^\?/u) { }
2 32 elsif ($sig =~ /^=((?&PerlOWS))((?&PerlTerm)) $GRAMMAR/osux) { }
706 11 26 if ($sig)
707 0 11 unless $sig =~ /^,/u
716 0 26 if ($seen_named and $seen_pos)
723 0 0 if (grep $_->{'positional'}, @parsed)
730 0 0 if ($is_optional) { }
0 0 elsif ($p->{'default'}) { }
0 0 elsif ($p->{'name'} =~ /^[\@\%]/u) { }
750 5 32 if $seen_named
751 3 34 if ($p->{'name'} =~ /^[\@\%]/u) { }
752 0 3 if @parsed
760 2 1 if ($p->{'type'} eq 'Any')
761 1 1 substr($p->{'name'}, 0, 1) eq '%' ? :
768 3 34 if ($p->{'type_is_block'}) { }
774 5 29 if (exists $p->{'optional'} or exists $p->{'default'} or $p->{'slurpy'})
776 3 5 if exists $p->{'optional'}
777 2 6 if exists $p->{'default'}
778 3 5 if exists $p->{'slurpy'}
783 2 24 if $seen_named
786 0 26 if (@head or @tail)
789 0 0 $_->{'type_is_block'} ? :
790 0 0 $_->{'type_is_block'} ? :
791 0 0 $head_stuff ? :
0 0 $tail_stuff ? :
819 3 15 if ($rolelist =~ /^((?&PerlBlock)) $GRAMMAR/osux) { }
15 0 elsif ($rolelist =~ /^((?&PerlQualifiedIdentifier)) $GRAMMAR/osux) { }
834 4 14 if ($rolelist =~ /^\?/sux) { }
4 10 elsif ($rolelist =~ /^((?&PerlList)) $GRAMMAR/osux) { }
835 0 4 if $kind eq 'class'
845 3 15 if ($role_is_block) { }
851 4 14 if ($role_params)
856 2 16 if (length $rolelist)
857 0 2 unless $rolelist =~ /^,/u
867 0 29 unless $names
879 0 0 if $attr =~ /^:optimize\b/u
882 0 2 if ($via)
883 0 0 $name =~ /^\{/u ? :
0 0 $via =~ /^\{/u ? :
890 0 2 unless ($has_sig)
892 0 0 $name =~ /^\{/u ? :
0 0 $optim ? :
902 0 2 $name =~ /^\{/u ? :
0 2 $optim ? :
919 1 0 if $attr =~ /^:optimize\b/u
922 16 1 if (defined $name) { }
923 11 5 if ($has_sig) { }
926 0 11 $name =~ /^\{/u ? :
1 10 $optim ? :
938 0 5 $name =~ /^\{/u ? :
0 5 $optim ? :
948 1 0 if ($has_sig) { }
951 0 1 $optim ? :
962 0 0 $optim ? :
979 0 1 if $attr =~ /^:optimize\b/u
980 1 0 if $attr =~ /^:alias\((.+)\)$/u
983 6 0 if ($has_sig) { }
986 0 6 $name =~ /^\{/u ? :
998 0 0 $name =~ /^\{/u ? :
1013 0 0 if $attr =~ /^:optimize\b/u
1020 0 4 /^\{/u ? :
1022 1 2 if ($has_sig) { }
1 1 elsif ($kind eq 'around') { }
1025 0 1 if ($kind eq 'around') { }
1031 0 1 $optim ? :
1044 0 1 $optim ? :
1055 0 1 $optim ? :
1069 1 71 if ($kind eq 'abstract')
1074 0 72 if ($kind eq 'interface')
1079 7 65 if ($name and $has_sig) { }
1 64 elsif ($has_sig) { }
60 4 elsif ($name) { }
1108 60 0 $code ? :
1139 14 12 unless defined $rawspec
1141 0 26 if (defined $default and $default =~ /\$self/u) { }
5 21 elsif (defined $default) { }
1154 3 25 $name =~ /^\{/u ? :
1166 0 3 $name =~ /^\{/u ? :
1172 2 1 if ($has_sig)
1174 0 2 $name =~ /^\{/u ? :
1189 0 0 if (ref $_[-1]) { }
1214 38 118 if ($#orig_lines > $#new_lines) { }
61 57 elsif ($#orig_lines < $#new_lines) { }
1216 19 19 if ($owed and $owed > $diff) { }
6 13 elsif ($owed) { }
1225 9 29 $pad_at_end ? :
1247 27 2 unless exists $opts{'prefix'}
1248 29 0 unless exists $opts{'factory_package'}
1249 29 0 unless exists $opts{'type_library'}
1254 0 29 if ($opts{'declare'})
1257 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"
1271 29 0 if ($] >= 5.018) { }
0 0 elsif ($] >= 5.014) { }
1285 0 2 unless $$ref =~ _fetch_re('MxpIncludeSyntax', 'anchor', 'start')
1301 0 61 unless $$ref =~ _fetch_re('MxpClassSyntax', 'anchor', 'start')
1323 0 1 unless $$ref =~ _fetch_re('MxpAbstractSyntax', 'anchor', 'start')
1346 0 10 unless $$ref =~ _fetch_re('MxpRoleSyntax', 'anchor', 'start')
1368 0 0 unless $$ref =~ _fetch_re('MxpToolkitSyntax', 'anchor', 'start')
1377 0 0 if ($imports) { }
1384 0 0 if ($next =~ /^::(.+)$/u) { }
0 0 elsif ($next =~ /^[^\W0-9]/u) { }
1393 0 0 if $imports[0] eq ','
1409 0 0 unless $$ref =~ _fetch_re('MxpHookSyntax', 'anchor', 'start')
1425 0 1 unless $$ref =~ _fetch_re('MxpTypeNameSyntax', 'anchor', 'start')
1440 0 7 unless $$ref =~ _fetch_re('MxpExtendsSyntax', 'anchor', 'start')
1455 0 9 unless $$ref =~ _fetch_re('MxpWithSyntax', 'anchor', 'start')
1471 0 3 unless $$ref =~ _fetch_re('MxpRequiresSyntax', 'anchor', 'start')
1488 0 26 unless $$ref =~ _fetch_re('MxpHasSyntax', 'anchor', 'start')
1500 12 14 $has_spec ? :
5 21 $has_default ? :
1508 0 7 unless $$ref =~ _fetch_re('MxpConstantSyntax', 'anchor', 'start')
1525 0 17 unless $$ref =~ _fetch_re('MxpMethodSyntax', 'anchor', 'start')
1540 1 16 $attributes ? :
1552 0 6 unless $$ref =~ _fetch_re('MxpMultiSyntax', 'anchor', 'start')
1563 1 5 $attributes ? :
1576 0 3 unless $$ref =~ _fetch_re('MxpModifierSyntax', 'anchor', 'start')
1587 0 3 $attributes ? :
1596 2 0 if ($$ref =~ _fetch_re('MxpFactorySyntax', 'anchor', 'start'))
1600 0 2 $attributes ? :
1605 0 0 unless $$ref =~ _fetch_re('MxpFactoryViaSyntax', 'anchor', 'start')
1624 0 1 unless $$ref =~ _fetch_re('MxpCoerceSyntax', 'anchor', 'start')
1632 0 1 if ($from =~ /^\{/u) { }
1 0 elsif (not $from =~ /^(q\b)|(qq\b)|"|'/u) { }
1638 0 1 if ($via =~ /^\{/u) { }
1 0 elsif (not $via =~ /^(q\b)|(qq\b)|"|'/u) { }
1645 1 0 $code ? :
1651 3 26 unless eval "package $caller; use MooX::Pression::_Gather -go; 1"
1677 0 1 if (@_ == 1 and ref $_[0] eq 'HASH') { }
0 1 elsif (@_ == 1 and ref $_[0] eq 'ARRAY') { }
1710 0 31 unless $OPTS{'in_package'}
1716 0 8 unless $OPTS{'in_package'}
1721 0 1 unless $OPTS{'in_package'}
1726 0 0 unless $OPTS{'in_package'}
1731 0 0 unless $OPTS{'in_package'}
1744 0 9 unless $OPTS{'in_package'}
1749 0 0 unless $OPTS{'in_package'}
1752 0 0 if @imports
1756 0 3 unless $OPTS{'in_package'}
1761 0 1 unless $OPTS{'in_package'}
1766 0 2 unless $OPTS{'in_package'}
1772 1 10 unless ($OPTS{'in_package'})
1781 2 14 unless ($OPTS{'in_package'})
1790 2 4 unless ($OPTS{'in_package'})
1799 1 4 unless ($OPTS{'in_package'})
1809 0 2 if $OPTS{'in_package'}
1816 0 2 unless ($file)
1821 0 2 if ref $file eq 'ARRAY'
1897 0 12 if exists $package_dfn->{$forbidden}