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 695 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 3580 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 118 $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 70 @keywords and $c->token_expects_block($keywords[0])
820 14 53 3 $c->token_defines_sub($first_token) and $c->has_callback_for("sub", $first_token)
843 624 1 47 @tokens and $c->token_defines_sub($keyword)
625 7 40 @tokens and $c->token_defines_sub($keyword) and $c->has_callback_for("sub", $keyword)
877 980 103 403 $waiting_for_a_block and @keywords
1083 300 103 $waiting_for_a_block and @keywords and $c->token_defines_sub($keywords[-1])
403 2 101 $waiting_for_a_block and @keywords and $c->token_defines_sub($keywords[-1]) and $$rstr =~ /$prototype_re/cg
888 212 4 79 $prev_token_type eq "KEYWORD" and @keywords
216 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 154 2 50 $waiting_for_a_block and @keywords
156 6 44 $waiting_for_a_block and @keywords and $c->token_defines_sub($keywords[-1])
1050 452 129 19 @keywords and $prev_token_type eq "KEYWORD"
581 0 19 @keywords and $prev_token_type eq "KEYWORD" and $keywords[-1] eq $prev_token
1052 13 5 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 4762 1715 $prev_token_type ne "ARROW" and $prev_token_type ne 'KEYWORD' || !$c->token_expects_word($prev_token)
1355 1933 3525 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'
1376 1903 45 5 $c1 eq "v" and $token =~ /^v(?:0|[1-9][0-9]*)$/
1387 39 0 10 @tokens and $tokens[-1][0] eq $prepend
1388 10 0 39 @scope_tokens and $scope_tokens[-1][0] eq $prepend
1430 0 20634 0 $current_scope & 512 and $current_scope & 256 || $ends_expr{$token} && $token_type eq 'KEYWORD' && $prev_token ne ',' && $prev_token ne '=>'
1451 3150 22428 981 not $current_scope & 1 and exists $c->{'callback'}{$token} || exists $c->{'keyword'}{$token} || exists $c->{'sub'}{$token}
22428 1 980 not $current_scope & 1 and exists $c->{'callback'}{$token} || exists $c->{'keyword'}{$token} || exists $c->{'sub'}{$token} and $token_type ne "METHOD"
22429 1 979 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)
1457 26344 129 28 $parent_scope & 2 and !@{$c->{'stack'};} || $c->{'stack'}[-1][0] ne '{'
1461 0 0 20 defined $eval_string and $eval_string ne ""
1478 0 0 1 defined $eval_string and $eval_string ne ""
1507 3083 1035 11 $token_type eq "KEYWORD" and $has_sideff{$token}
1515 1383 635 271 $token eq "{" and $is_conditional{$stack->[2]}
1521 1383 890 16 $token eq "{" and $current_scope & 2
1535 1199 588 502 $stack->[0] eq "(" and $prev_token_type eq "KEYWORD"
1787 13 489 $stack->[0] eq "(" and $prev_token_type eq "KEYWORD" and @keywords
601 0 489 $stack->[0] eq "(" and $prev_token_type eq "KEYWORD" and @keywords and $keywords[-1] eq $prev_token
13 187 302 $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)
1539 1383 193 713 $stack->[0] eq "{" and @keywords
1576 76 637 $stack->[0] eq "{" and @keywords and $c->token_expects_block($keywords[0])
269 26 611 $stack->[0] eq "{" and @keywords and $c->token_expects_block($keywords[0]) and not $c->token_expects_block_list($keywords[-1])
1540 611 0 0 @tokens and $c->token_defines_sub($keywords[-1]) || $keywords[-1] eq 'eval'
1545 3329 0 944 $current_scope & 1 and @tokens
1561 713 0 0 $c->{'found_unsupported_package'} and not $c->{'quick'}
1574 926 0 18 exists $c->{'method'}{$first_token} and $caller_package
1600 11 0 0 exists $c->{'method'}{$first_token} and $caller_package
1616 24344 22 2193 $unstack and @{$c->{'stack'};}
1619 1186 1007 0 $unstack eq "}" and $stacked_type ne "{"
2097 96 0 $unstack eq "]" and $stacked_type ne "["
1103 1090 0 $unstack eq ")" and $stacked_type ne "("
1635 24188 0 0 $c->{'last_found_by_skimming'} and $c->{'last_found_by_skimming'} < pos $$rstr
1640 43228 0 0 @{$c->{'errors'};} and not $parent_scope & 4
1726 95 1 1 $re =~ /\n/s and not $mod =~ /x/
1778 1 29 23 $ldel1 ne "\\" and $$rstr =~ /\G$re_shortcut/cgs
1905 3941 1 144 $c1 eq "#" and $rdel ne "#"
1906 19 31 94 $multiline and $$rstr =~ /\G(#[^\Q$rdel\E]*?)\n/cgs
1916 3525 1 416 $c1 eq "\\" and $rdel ne "\\"
1974 0 2 28 $multiline and $saw_sharp
1992 68 141 12 $multiline && $saw_sharp
186 12 209 $c2 eq "?" and not $multiline && $saw_sharp
2019 2711 184 3 $c1 eq "\$" and substr($$rstr, $p + 1, 1) eq "{"
2027 0 4 393 @nesting and $nesting[-1] eq "("
2039 0 86 1 $outer_opening_delimiter and $c1 eq $outer_opening_delimiter
2045 0 84 2 $outer_closing_delimiter and $c1 eq $outer_closing_delimiter
2046 0 1 1 @nesting and $nesting[-1] eq $outer_opening_delimiter
2162 6 597 34 $maybe_version_token_desc and $maybe_version_token_desc eq 'NUMBER' || $maybe_version_token_desc eq 'VERSION_STRING'
2271 0 26 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 88 !!$ENV{'PERL_PSNQL_DEBUG'} || 0
303 0 0 pos $$rstr || 0
852 672 234 $stack_owner || ''
909 215 875 $stack_owner || ''
1526 139 0 pop @tokens || ''
1527 139 0 pop @$scanned_tokens || ''
1530 36 0 pop @scope_tokens || ''
1531 36 0 pop @$scanned_tokens || ''
1624 0 0 $stacked->[1] || 0
1734 47 0 pos $$rstr || 0
1762 53 0 pos $$rstr || 0
1789 5 0 pos $$rstr || 0
1834 16 0 pos $$rstr || 0
1877 126 0 pos $$rstr || 0

or 3 conditions

line l !l&&r !l&&!r condition
110 1 296 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 121 37 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 72147 45866 2083 $type eq 'use' || $type eq 'no'
393 1 1 3578 $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 116 $prev_token_type eq "ARROW" or $prev_token_type eq "VARIABLE"
857 7 28 809 $prev_token_type eq "ARROW" or $prev_token_type eq "VARIABLE"
1242 0 0 641 $n1 eq "E" or $n1 eq "e"
1265 5171 250 1056 $prev_token_type ne 'KEYWORD' || !$c->token_expects_word($prev_token)
1266 163 167 5091 $prev_token_type eq "EXPR" or $prev_token_type eq "VARIABLE"
1355 3499 0 26 $prev_token_type ne 'KEYWORD' || !$c->token_expects_word($prev_token) || $prev_token eq 'sub' && $token eq 'BEGIN'
1430 3117 0 17517 $current_scope & 256 || $ends_expr{$token} && $token_type eq 'KEYWORD' && $prev_token ne ',' && $prev_token ne '=>'
1447 39 0 802 $token eq "-" or $token eq "+"
1451 209 29 22428 exists $c->{'callback'}{$token} || exists $c->{'keyword'}{$token} || exists $c->{'sub'}{$token}
1457 62 14 81 !@{$c->{'stack'};} || $c->{'stack'}[-1][0] ne '{'
58 282 26219 $current_scope & 2 or $parent_scope & 2 and !@{$c->{'stack'};} || $c->{'stack'}[-1][0] ne '{'
1504 11 1 4117 $token eq "-" or $token eq "+"
1540 0 0 0 $c->token_defines_sub($keywords[-1]) || $keywords[-1] eq 'eval'
1551 1 0 45 $first_token eq "use" or $first_token eq "no"
1619 0 0 2193 $unstack eq "}" and $stacked_type ne "{" or $unstack eq "]" and $stacked_type ne "["
0 0 2193 $unstack eq "}" and $stacked_type ne "{" or $unstack eq "]" and $stacked_type ne "[" or $unstack eq ")" and $stacked_type ne "("
1717 47 50 1 $$rstr =~ /\G$re_shortcut/cgs or defined $self->_scan_re($c, $rstr, "/", "/", $token_type ? "m" : "")
1750 2 45 0 $$rstr =~ /\G$re_shortcut/cgs or defined $self->_scan_re($c, $rstr, $ldel, $rdel, "m/qr")
1778 23 30 0 $ldel1 ne "\\" and $$rstr =~ /\G$re_shortcut/cgs or defined $self->_scan_re($c, $rstr, $ldel1, $rdel1, "s")
1900 696 0 4086 $c1 eq " " or $c1 eq "\t"
2128 0 0 641 not defined $name or ref $name
0 0 641 not defined $name or ref $name or $name eq ""
2162 34 0 597 $maybe_version_token_desc eq 'NUMBER' || $maybe_version_token_desc eq 'VERSION_STRING'
2212 0 0 67 not defined $name or $name eq ""
2245 0 0 31 not defined $name or ref $name
0 0 31 not defined $name or ref $name or $name eq ""
2271 3 0 26 $maybe_version_token_desc eq 'NUMBER' || $maybe_version_token_desc eq 'VERSION_STRING'