Condition Coverage

lib/Perl/PrereqScanner/NotQuiteLite.pm
Criterion Covered Total %
condition 284 397 71.5


and 3 conditions

line !l l&&!r l&&r condition
290 780 0 1 @{$c->{'stack'};} and not $c->{'quick'}
309 0 0 0 not $saw_moose and $match =~ /^use\s+(?:Mo(?:o|(?:[ou]se))?X?|MooseX::Declare)\b/
371 49 7 1 $c2 eq "_" and $$rstr =~ /\G(__(?:DATA|END)__\b)(?!\s*=>)/cg
393 3740 0 2 $c2 eq "*" and $prev_token_type eq "ARROW"
432 2 0 0 $prev_token_type eq "KEYWORD" and $c->token_expects_fh_or_block_list($prev_token)
473 194 5 122 $c2 eq "_" and $$rstr =~ /\G\@_\b/cg
606 0 0 0 $prev_token eq "KEYWORD" and $c->token_expects_fh_or_block_list($prev_token)
757 44 3 20 $prev_token_type eq "KEYWORD" and $regexp_may_follow{$prev_token}
767 47 0 0 not $current_scope & 512 and $prev_token_type eq "WORD"
44 0 3 $prev_token_type eq "KEYWORD" and @keywords
44 0 3 $prev_token_type eq "KEYWORD" and @keywords and $prev_token eq $keywords[-1]
0 3 0 $prev_token_type eq "KEYWORD" and @keywords and $prev_token eq $keywords[-1] and $regexp_may_follow{$prev_token}
812 16 3 15 $prev_token_type eq "KEYWORD" and $c->token_expects_fh_or_block_list($prev_token)
817 3 9 75 @keywords and $c->token_expects_block($keywords[0])
820 14 58 3 $c->token_defines_sub($first_token) and $c->has_callback_for("sub", $first_token)
843 650 1 73 @tokens and $c->token_defines_sub($keyword)
651 7 66 @tokens and $c->token_defines_sub($keyword) and $c->has_callback_for("sub", $keyword)
877 985 103 432 $waiting_for_a_block and @keywords
1088 303 129 $waiting_for_a_block and @keywords and $c->token_defines_sub($keywords[-1])
406 2 127 $waiting_for_a_block and @keywords and $c->token_defines_sub($keywords[-1]) and $$rstr =~ /$prototype_re/cg
888 219 4 79 $prev_token_type eq "KEYWORD" and @keywords
223 0 79 $prev_token_type eq "KEYWORD" and @keywords and $keywords[-1] eq $prev_token
4 25 54 $prev_token_type eq "KEYWORD" and @keywords and $keywords[-1] eq $prev_token and not $c->token_expects_expr_block($prev_token)
1007 206 2 96 $waiting_for_a_block and @keywords
208 8 88 $waiting_for_a_block and @keywords and $c->token_defines_sub($keywords[-1])
1050 445 129 26 @keywords and $prev_token_type eq "KEYWORD"
574 0 26 @keywords and $prev_token_type eq "KEYWORD" and $keywords[-1] eq $prev_token
1052 13 12 1 not @keywords and $current_scope & 1
1259 0 0 2 @tokens and $tokens[-1][0] eq $prepend
1260 2 0 0 @scope_tokens and $scope_tokens[-1][0] eq $prepend
1265 521 5385 1755 $prev_token_type ne "ARROW" and $prev_token_type ne 'KEYWORD' || !$c->token_expects_word($prev_token)
1355 2193 3837 0 $c->token_is_keyword($token) and $prev_token_type ne 'KEYWORD' || !$c->token_expects_word($prev_token) || $prev_token eq 'sub' && $token eq 'BEGIN'
1375 2163 45 5 $c1 eq "v" and $token =~ /^v(?:0|[1-9][0-9]*)$/
1386 39 0 10 @tokens and $tokens[-1][0] eq $prepend
1387 10 0 39 @scope_tokens and $scope_tokens[-1][0] eq $prepend
1429 0 21742 0 $current_scope & 512 and $current_scope & 256 || $ends_expr{$token} && $token_type eq 'KEYWORD' && $prev_token ne ',' && $prev_token ne '=>'
1450 3666 23210 1183 not $current_scope & 1 and exists $c->{'callback'}{$token} || exists $c->{'keyword'}{$token} || exists $c->{'sub'}{$token}
23210 1 1182 not $current_scope & 1 and exists $c->{'callback'}{$token} || exists $c->{'keyword'}{$token} || exists $c->{'sub'}{$token} and $token_type ne "METHOD"
23211 1 1181 not $current_scope & 1 and exists $c->{'callback'}{$token} || exists $c->{'keyword'}{$token} || exists $c->{'sub'}{$token} and $token_type ne "METHOD" and not $c->token_expects_word($prev_token)
1456 27844 129 28 $parent_scope & 2 and !@{$c->{'stack'};} || $c->{'stack'}[-1][0] ne '{'
1460 0 0 20 defined $eval_string and $eval_string ne ""
1477 0 0 1 defined $eval_string and $eval_string ne ""
1506 3582 1254 11 $token_type eq "KEYWORD" and $has_sideff{$token}
1514 1384 687 271 $token eq "{" and $is_conditional{$stack->[2]}
1520 1384 942 16 $token eq "{" and $current_scope & 2
1534 1251 586 505 $stack->[0] eq "(" and $prev_token_type eq "KEYWORD"
1837 13 492 $stack->[0] eq "(" and $prev_token_type eq "KEYWORD" and @keywords
599 0 492 $stack->[0] eq "(" and $prev_token_type eq "KEYWORD" and @keywords and $keywords[-1] eq $prev_token
13 187 305 $stack->[0] eq "(" and $prev_token_type eq "KEYWORD" and @keywords and $keywords[-1] eq $prev_token and not $c->token_expects_expr_block($prev_token)
1538 1384 193 765 $stack->[0] eq "{" and @keywords
1577 76 689 $stack->[0] eq "{" and @keywords and $c->token_expects_block($keywords[0])
269 26 663 $stack->[0] eq "{" and @keywords and $c->token_expects_block($keywords[0]) and not $c->token_expects_block_list($keywords[-1])
1539 663 0 0 @tokens and $c->token_defines_sub($keywords[-1]) || $keywords[-1] eq 'eval'
1544 3539 0 1119 $current_scope & 1 and @tokens
1560 849 0 0 $c->{'found_unsupported_package'} and not $c->{'quick'}
1573 1101 0 18 exists $c->{'method'}{$first_token} and $caller_package
1599 11 0 0 exists $c->{'method'}{$first_token} and $caller_package
1615 25791 22 2246 $unstack and @{$c->{'stack'};}
1618 1187 1059 0 $unstack eq "}" and $stacked_type ne "{"
2150 96 0 $unstack eq "]" and $stacked_type ne "["
1155 1091 0 $unstack eq ")" and $stacked_type ne "("
1634 25635 0 0 $c->{'last_found_by_skimming'} and $c->{'last_found_by_skimming'} < pos $$rstr
1639 45994 0 0 @{$c->{'errors'};} and not $parent_scope & 4
1725 95 1 1 $re =~ /\n/s and not $mod =~ /x/
1777 1 29 23 $ldel1 ne "\\" and $$rstr =~ /\G$re_shortcut/cgs
1904 3941 1 144 $c1 eq "#" and $rdel ne "#"
1905 19 31 94 $multiline and $$rstr =~ /\G(#[^\Q$rdel\E]*?)\n/cgs
1915 3525 1 416 $c1 eq "\\" and $rdel ne "\\"
1973 0 2 28 $multiline and $saw_sharp
1991 68 141 12 $multiline && $saw_sharp
186 12 209 $c2 eq "?" and not $multiline && $saw_sharp
2018 2711 184 3 $c1 eq "\$" and substr($$rstr, $p + 1, 1) eq "{"
2026 0 4 393 @nesting and $nesting[-1] eq "("
2038 0 86 1 $outer_opening_delimiter and $c1 eq $outer_opening_delimiter
2044 0 84 2 $outer_closing_delimiter and $c1 eq $outer_closing_delimiter
2045 0 1 1 @nesting and $nesting[-1] eq $outer_opening_delimiter
2161 6 732 34 $maybe_version_token_desc and $maybe_version_token_desc eq 'NUMBER' || $maybe_version_token_desc eq 'VERSION_STRING'
2270 0 27 3 $maybe_version_token_desc and $maybe_version_token_desc eq 'NUMBER' || $maybe_version_token_desc eq 'VERSION_STRING'

or 2 conditions

line l !l condition
22 0 102 !!$ENV{'PERL_PSNQL_DEBUG'} || 0
303 0 0 pos $$rstr || 0
852 724 234 $stack_owner || ''
909 215 876 $stack_owner || ''
1525 139 0 pop @tokens || ''
1526 139 0 pop @$scanned_tokens || ''
1529 36 0 pop @scope_tokens || ''
1530 36 0 pop @$scanned_tokens || ''
1623 0 0 $stacked->[1] || 0
1733 47 0 pos $$rstr || 0
1761 53 0 pos $$rstr || 0
1788 5 0 pos $$rstr || 0
1833 16 0 pos $$rstr || 0
1876 126 0 pos $$rstr || 0

or 3 conditions

line l !l&&r !l&&!r condition
110 1 338 0 $ReStrInDelims{$delim} ||= do { if ($delim eq "\\") { qr/(?:[^\\]*(?:(?:\\\\)[^\\]*)*)/s; } else { $delim = quotemeta $delim; qr/(?:[^\\$delim]*(?:\\.[^\\$delim]*)*)/s; } }
127 63 33 0 $ReStrInDelimsWithEndDelim{$delim} ||= do { my $re = _gen_re_str_in_delims($delim); qr/$re\Q$delim\E/ }
136 124 40 0 $RdelSkip{$ldel} ||= do { (my $rdel = $ldel) =~ tr/(<[{/)>]}/; my $re_skip = qr/[^\Q$ldel$rdel\E\\]+/; [$rdel, $re_skip] }
146 170 28 0 $RegexpShortcut{$ldel} ||= do { $ldel = quotemeta $ldel; $rdel = $rdel ? quotemeta $rdel : $ldel; qr/(?:[^\\\(\)\{\}\[\]<>$ldel$rdel]*(?:\\.[^\\\(\)\[\]\{\}<>$ldel$rdel]*)*)$rdel/ }
176 83188 51409 2336 $type eq 'use' || $type eq 'no'
393 1 1 3738 $c2 eq "+" or $c2 eq "-"
438 0 0 0 $token eq "\${^CAPTURE}" or $token eq "\${^CAPTURE_ALL}"
473 1 1 111 $c2 eq "+" or $c2 eq "-"
479 0 0 0 $token eq "\@{^CAPTURE}" or $token eq "\@{^CAPTURE_ALL}"
484 2 0 0 $token eq "\@{^CAPTURE}" or $token eq "\@{^CAPTURE_ALL}"
540 0 4 8 $prev_token_type eq "VARIABLE" or $prev_token_type eq "EXPR"
1 1 0 $c2 eq "+" or $c2 eq "-"
545 1 1 0 $token eq "%{^CAPTURE}" or $token eq "%{^CAPTURE_ALL}"
720 39 12 1052 $prev_token_type eq "WORD" or $prev_token_type eq "KEYWORD"
757 25 52 67 $prev_token_type eq "" or $prev_token_type eq "OP"
77 52 15 $prev_token_type eq "" or $prev_token_type eq "OP" or $prev_token_type eq "KEYWORD" and $regexp_may_follow{$prev_token}
767 1 0 47 $prev_token_type eq "" or not $current_scope & 512 and $prev_token_type eq "WORD"
0 0 47 $prev_token_type eq "" or not $current_scope & 512 and $prev_token_type eq "WORD" or $prev_token_type eq "KEYWORD" and @keywords and $prev_token eq $keywords[-1] and $regexp_may_follow{$prev_token}
812 488 267 121 $prev_token_type eq "ARROW" or $prev_token_type eq "VARIABLE"
857 7 28 861 $prev_token_type eq "ARROW" or $prev_token_type eq "VARIABLE"
1242 0 0 729 $n1 eq "E" or $n1 eq "e"
1265 5586 267 1287 $prev_token_type ne 'KEYWORD' || !$c->token_expects_word($prev_token)
1266 164 167 5522 $prev_token_type eq "EXPR" or $prev_token_type eq "VARIABLE"
1355 3811 0 26 $prev_token_type ne 'KEYWORD' || !$c->token_expects_word($prev_token) || $prev_token eq 'sub' && $token eq 'BEGIN'
1429 3403 0 18339 $current_scope & 256 || $ends_expr{$token} && $token_type eq 'KEYWORD' && $prev_token ne ',' && $prev_token ne '=>'
1446 39 0 802 $token eq "-" or $token eq "+"
1450 275 29 23210 exists $c->{'callback'}{$token} || exists $c->{'keyword'}{$token} || exists $c->{'sub'}{$token}
1456 62 14 81 !@{$c->{'stack'};} || $c->{'stack'}[-1][0] ne '{'
58 293 27708 $current_scope & 2 or $parent_scope & 2 and !@{$c->{'stack'};} || $c->{'stack'}[-1][0] ne '{'
1503 11 1 4835 $token eq "-" or $token eq "+"
1539 0 0 0 $c->token_defines_sub($keywords[-1]) || $keywords[-1] eq 'eval'
1550 1 0 45 $first_token eq "use" or $first_token eq "no"
1618 0 0 2246 $unstack eq "}" and $stacked_type ne "{" or $unstack eq "]" and $stacked_type ne "["
0 0 2246 $unstack eq "}" and $stacked_type ne "{" or $unstack eq "]" and $stacked_type ne "[" or $unstack eq ")" and $stacked_type ne "("
1716 47 50 1 $$rstr =~ /\G$re_shortcut/cgs or defined $self->_scan_re($c, $rstr, "/", "/", $token_type ? "m" : "")
1749 2 45 0 $$rstr =~ /\G$re_shortcut/cgs or defined $self->_scan_re($c, $rstr, $ldel, $rdel, "m/qr")
1777 23 30 0 $ldel1 ne "\\" and $$rstr =~ /\G$re_shortcut/cgs or defined $self->_scan_re($c, $rstr, $ldel1, $rdel1, "s")
1899 696 0 4086 $c1 eq " " or $c1 eq "\t"
2127 0 0 776 not defined $name or ref $name
0 0 776 not defined $name or ref $name or $name eq ""
2161 34 0 732 $maybe_version_token_desc eq 'NUMBER' || $maybe_version_token_desc eq 'VERSION_STRING'
2211 0 0 67 not defined $name or $name eq ""
2244 0 0 32 not defined $name or ref $name
0 0 32 not defined $name or ref $name or $name eq ""
2270 3 0 27 $maybe_version_token_desc eq 'NUMBER' || $maybe_version_token_desc eq 'VERSION_STRING'