Branch Coverage

blib/lib/Config/Perl.pm
Criterion Covered Total %
branch 156 182 86.2


line true false branch
202 1 139 if @_
220 85 2 defined $out ? :
227 44 103 if ref $input eq 'SCALAR' and not $$input =~ /;\s*$/
230 1 146 unless $doc
231 2 144 unless $doc->complete
235 20 106 if @rv
241 0 151 unless $block->isa('PPI::Structure::Block') or $block->isa('PPI::Document')
243 2 149 unless $block->schildren
248 0 295 unless $el->isa('PPI::Statement')
251 286 9 if (@sc and $sc[-1]->isa('PPI::Token::Structure') and $sc[-1]->content eq ';')
253 0 295 unless @sc
255 146 149 $el->snext_sibling ? :
258 65 230 if ($el->class eq 'PPI::Statement::Variable') { }
226 4 elsif ($el->class eq 'PPI::Statement') { }
4 0 elsif ($el->isa('PPI::Statement::Compound') and @sc == 1 and $sc[0]->isa('PPI::Token::Label')) { }
261 1 64 unless $el->type eq 'our' or $el->type eq 'my'
263 1 1 unless $el->type eq 'our' or $el->type eq 'my' and $param{'outer'}
271 181 45 if (@sc == 3 || @sc == 4 and $sc[1]->isa('PPI::Token::Operator') and $sc[1]->content eq '=') { }
6 39 elsif (@sc == 4 || @sc == 5 and $sc[2]->isa('PPI::Token::Operator') and $sc[2]->content eq '=') { }
5 34 elsif (@sc == 2 and $sc[0]->isa('PPI::Token::Word') and $sc[0]->literal eq 'do' and $sc[1]->isa('PPI::Structure::Block')) { }
31 3 elsif (@sc == 1 or @sc == 2 and $sc[0]->isa('PPI::Token::Symbol') and $sc[1]->isa('PPI::Structure::Subscript')) { }
1 2 elsif (@sc > 2 and $sc[0]->isa('PPI::Token::Word') and $sc[0]->literal eq 'push') { }
284 3 1 unless $$self{'ctx'} eq 'scalar-void'
289 22 2 unless $$self{'ctx'} eq 'scalar-void'
290 2 22 if $$self{'ctx'} eq 'scalar-void'
302 104 172 if ($is_assign and $$self{'ctx'} ne 'scalar-void')
305 104 0 if ($param{'outer'} and not $el->snext_sibling) { }
317 0 250 unless $as->class eq 'PPI::Statement' or $as->class eq 'PPI::Statement::Variable'
322 1 249 if $as->schildren < 3 or $as->schildren > 5
327 240 9 if ($lhs->isa('PPI::Token::Symbol')) { }
9 0 elsif ($lhs->isa('PPI::Structure::List')) { }
337 205 40 $lhs_scalar ? :
341 1 249 if (not defined $l) { }
215 34 elsif ($$l{'atype'} eq '$') { }
20 14 elsif ($$l{'atype'} eq '@') { }
14 0 elsif ($$l{'atype'} eq '%') { }
346 18 2 if (not defined ${$$l{'ref'};}) { }
353 12 2 if (not defined ${$$l{'ref'};}) { }
368 0 110 unless $outerlist
369 0 110 unless $outerlist->isa('PPI::Structure::List') or $outerlist->isa('PPI::Structure::Constructor')
372 0 110 unless $$self{'ctx'} =~ /^list\b/
374 0 110 if $param{'is_lhs'} and not $outerlist->isa('PPI::Structure::List')
376 0 110 unless $outerlist->schildren
379 0 110 unless $outerlist->schildren == 1 and $act_list->isa('PPI::Statement::Expression') || $act_list->class eq 'PPI::Statement'
381 0 110 unless $act_list->schildren
386 295 187 if ($expect eq 'item') { }
187 0 elsif ($expect eq 'separator') { }
389 15 280 if ($param{'is_lhs'}) { }
390 13 2 if ($el->isa('PPI::Token::Symbol')) { }
1 1 elsif (not $fat_comma_next and $el->isa('PPI::Token::Word') and $el->literal eq 'undef') { }
399 29 251 if ($fat_comma_next and $el->isa('PPI::Token::Word') and $el->literal =~ /^\w+$/) { }
2 249 elsif ($el->isa('PPI::Token::QuoteLike::Words')) { }
406 1 0 if ($el->isa('PPI::Token::Word') and $el->literal eq 'do' and $peek_next and $peek_next->isa('PPI::Structure::Block'))
415 5 15 if ($el->isa('PPI::Token::Symbol') and $peek_next and $peek_next->isa('PPI::Structure::Subscript'))
420 0 187 unless $el->isa('PPI::Token::Operator') and $el->content eq ',' || $el->content eq '=>'
433 0 538 unless $val
434 154 384 if ($val->isa('PPI::Token::Number')) { }
233 151 elsif ($val->isa('PPI::Token::Quote')) { }
77 74 elsif ($val->isa('PPI::Structure::Constructor')) { }
1 73 elsif ($val->isa('PPI::Token::Word') and $val->literal eq 'undef') { }
4 69 elsif ($val->isa('PPI::Token::Word') and $val->literal =~ /^-\w+$/) { }
21 48 elsif ($val->isa('PPI::Token::Symbol')) { }
2 46 elsif ($val->isa('PPI::Token::Word') and $val->literal eq 'do' and $val->snext_sibling and $val->snext_sibling->isa('PPI::Structure::Block')) { }
24 22 elsif ($val->isa('PPI::Structure::List')) { }
20 2 elsif ($val->isa('PPI::Token::QuoteLike::Words')) { }
446 8 10 if ($$sym{'atype'} eq '$') { }
5 5 elsif ($$sym{'atype'} eq '@') { }
4 1 elsif ($$sym{'atype'} eq '%') { }
452 1 4 $$self{'ctx'} =~ /^scalar\b/ ? :
457 1 3 $$self{'ctx'} =~ /^scalar\b/ ? :
470 1 23 $$self{'ctx'} =~ /^scalar\b/ ? :
474 1 19 $$self{'ctx'} =~ /^scalar\b/ ? :
482 0 274 unless $sym->isa('PPI::Token::Symbol')
485 18 256 if ($peek_next and $peek_next->isa('PPI::Structure::Subscript')) { }
487 10 4 if ($sym->raw_type eq '$' and $sym->symbol_type eq '@' and $peek_next->braces eq '[]') { }
2 2 elsif ($sym->raw_type eq '$' and $sym->symbol_type eq '%' and $peek_next->braces eq '{}') { }
506 0 18 unless $sub->isa('PPI::Structure::Subscript')
508 0 18 unless @sub_ch == 1 and $sub_ch[0]->isa('PPI::Statement::Expression')
511 3 15 unless @subs == 1
514 2 13 if ($sub->braces eq '{}' and $subs[0]->isa('PPI::Token::Word')) { }
525 0 77 unless $constr->isa('PPI::Structure::Constructor')
528 30 47 if ($constr->braces eq '[]') { }
47 0 elsif ($constr->braces eq '{}') { }
539 133 100 if ($q->isa('PPI::Token::Quote::Single') or $q->isa('PPI::Token::Quote::Literal')) { }
100 0 elsif ($q->isa('PPI::Token::Quote::Double') or $q->isa('PPI::Token::Quote::Interpolate')) { }
551 1 99 if $str =~ /\$$/
555 1 98 if $str =~ /(?
564 3 13 if $what =~ /^[0-7]+$/
565 0 13 if $what =~ /^x([0-9A-Fa-f]+)$/
566 12 1 if exists $_backsl_tbl{$what}
571 9 2 if exists $$self{'out'}{$var} and defined $$self{'out'}{$var}