Branch Coverage

lib/B/DeparseTree/TreeMain.pm
Criterion Covered Total %
branch 109 336 32.4


line true false branch
127 9 36 unless *{$_;}{'CODE'}
176 0 0 if ($arg eq '-d') { }
0 0 elsif ($arg =~ /^-f(.*)/) { }
0 0 elsif ($arg eq '-l') { }
0 0 elsif ($arg eq '-a') { }
0 0 elsif ($arg eq '-p') { }
0 0 elsif ($arg eq '-P') { }
0 0 elsif ($arg eq '-q') { }
0 0 elsif (substr($arg, 0, 2) eq '-s') { }
0 0 elsif ($arg =~ /^-x(\d)$/) { }
220 114 1295 defined $self->{'ambient_warnings'} ? :
223 0 1409 if $] < 5.009
245 0 1345 unless UNIVERSAL::isa($coderef, 'CODE')
253 0 59 unless UNIVERSAL::isa($func, 'CODE')
263 0 77 if ($self->{'use_dumper'})
266 0 77 if (class($sv) eq 'SPECIAL')
271 0 77 if (class($sv) eq 'NULL')
275 0 77 if ($sv->FLAGS & 8388608)
277 0 0 if ($mg->TYPE eq 'V')
283 54 23 if ($sv->FLAGS & 256) { }
0 23 elsif ($sv->FLAGS & 512) { }
0 23 elsif ($sv->FLAGS & 2048 and $sv->can('RV')) { }
23 0 elsif ($sv->FLAGS & 1024) { }
285 0 54 if $str < 0
289 0 0 if ($nv == 0) { }
0 0 elsif (1 / $nv == 0) { }
0 0 elsif ($nv != $nv) { }
290 0 0 if (pack('F', $nv) eq "\000\000\000\000\000\000\000\000") { }
299 0 0 if ($nv > 0) { }
310 0 0 if (pack('F', $nv) eq "\000\000\000\000\000\000\370\377") { }
0 0 elsif (pack('F', $nv) eq "\000\000\000\000\000\000\370\177") { }
326 0 0 if ($str != $nv)
330 0 0 if ($str != $nv)
338 0 0 if $nv < 0
342 0 0 if (class($ref) eq 'AV') { }
0 0 elsif (class($ref) eq 'HV') { }
0 0 elsif (class($ref) eq 'CV') { }
356 3 0 if ($] > 5.0150051)
361 0 0 if ($] > 5.0150051 and $self->{'curcv'} and $self->{'curcv'}->object_2svref == $ref->object_2svref)
371 0 0 if ($ref->FLAGS & 4194304)
373 0 0 if ($mg->TYPE eq 'r')
381 0 0 if ($self->{'in_subst_repl'} and $const =~ /^[0-9]/)
390 0 23 if ($str =~ /[[:^print:]]/) { }
409 0 0 if ($str =~ /^\$v/) { }
424 0 0 if B::Deparse::null($op->first)
445 0 0 if $parent
450 0 0 if (exists $info->{'other_ops'}) { }
465 5531 0 if $op
466 5531 0 if $op
478 2089 1 if (B::Deparse::is_state($kids[$i]))
483 0 2089 if ($fix_cop)
488 0 2089 if ($i > $#kids)
492 0 2090 if (B::Deparse::is_for_loop($kids[$i]))
494 0 0 $kids[$i]->sibling->name eq 'unstack' ? :
508 0 2090 if ($fix_cop)
514 0 2090 if (B::class($op) eq 'COP' and not $expr->{'text'}) { }
537 7 1345 defined $out_cop ? :
539 1352 0 if (defined $root)
542 0 1352 if ${$root->sibling;}
543 1345 7 if not defined $limit_seq or defined $nseq and $nseq < $limit_seq
548 0 0 if defined $self->{'limit_seq'} and !defined($limit_seq) || $self->{'limit_seq'} < $limit_seq
554 0 4179 unless $info->{'type'}
557 4179 0 if ($parent)
558 0 4179 unless ref $parent
576 0 0 unless $cvfile eq $0 or exists $self->{'files'}{$cvfile}
578 0 0 if ($cv->OUTSIDE_SEQ) { }
0 0 elsif (not B::Deparse::null($cv->START) and B::Deparse::is_state($cv->START)) { }
596 0 12645 unless $$startop
608 857 24023 if ($ppname eq 'padrange')
631 4 20 if (class($op) eq 'PMOP' and ref $op->pmreplroot and ${$op->pmreplroot;} and $op->pmreplroot->isa('B::OP'))
639 11296 13584 if ($op->flags & 4)
654 14 1452 unless $$startop
655 0 1452 if $$visited{$$startop}
658 103 12744 if $$visited{$$op}
665 100 12644 if ($ppname =~ /^((and|d?or)(assign)?|(map|grep)while|range|cond_expr|once)$/) { }
18 12626 elsif ($ppname eq 'subst') { }
3 12623 elsif ($ppname =~ /^(enter(loop|iter))$/) { }
709 0 0 ref $ar->[1] ? :
0 0 defined $ar->[1] ? :
725 0 0 if ($opt eq 'C') { }
0 0 elsif ($opt eq 'i') { }
0 0 elsif ($opt eq 'T') { }
0 0 elsif ($opt eq 'v') { }
749 0 0 if (defined $^I)
752 0 0 if ($^W)
755 0 0 if ($/ ne "\n" or defined $O::savebackslash)
760 0 0 B::begin_av()->isa('B::AV') ? :
761 0 0 B::unitcheck_av()->isa('B::AV') ? :
764 0 0 B::check_av()->isa('B::AV') ? :
765 0 0 B::init_av()->isa('B::AV') ? :
766 0 0 B::end_av()->isa('B::AV') ? :
767 0 0 if ($] < 5.02) { }
784 0 0 if ($self->{'curcop'})
801 0 0 if ($] < 5.021) { }
802 0 0 unless (B::Deparse::null($root))
808 0 0 unless (B::Deparse::null($root))
818 0 0 if ($root->name eq 'leave' and ($kid = $root->first)->name eq 'enter' and not B::Deparse::null($kid = $kid->sibling) and $kid->name eq 'stub' and not B::Deparse::null($kid = $kid->sibling) and $kid->name eq 'null' and class($kid) eq 'COP' and B::Deparse::null($kid->sibling)) { }
837 0 0 if @text
842 0 0 defined $self->{'curcop'} ? :
843 0 0 if (defined *{$laststash . '::DATA';}{'IO'})
845 0 0 unless $laststash eq $self->{'curstash'}
877 0 17231 unless $op->can('name')
881 0 17231 if $ENV{'DEBUG_DEPARSETREE'}
884 2564 14667 if (exists $B::DeparseTree::PP_MAPFNS{$name}) { }
886 150 2414 if (ref $B::DeparseTree::PP_MAPFNS{$name} eq 'ARRAY') { }
889 67 83 if ($meth eq 'maybe_targmy') { }
893 51 16 unless @args
894 4 63 if ($op->private & 16) { }
925 0 17231 unless ref $info
926 0 17231 unless $info->isa('B::DeparseTree::Node')
928 17149 82 if $parent
931 17158 73 if ($got_op) { }
932 2918 14240 if ($got_op != $op)
941 4133 13098 if ($info->{'other_ops'})
943 0 8733 if (not ref $other) { }
5364 3369 elsif ($other->isa('B::DeparseTree::Node')) { }
966 0 1345 if not defined $cv or $cv->isa('B::NULL')
967 0 1345 if $cv->isa('B::SPECIAL')
972 0 1345 if ($cv->FLAGS & 1024)
975 0 1345 if ($cv->CvFLAGS & 3)
977 0 0 if $cv->CvFLAGS & 2
978 0 0 if $cv->CvFLAGS & 0
979 0 0 if $cv->CvFLAGS & 1
993 1345 0 if (not B::Deparse::null($root)) { }
996 1345 0 if ($lineseq->name eq 'lineseq') { }
0 0 elsif ($start_op) { }
1020 0 0 if ($$sv) { }
1033 0 1345 if ($start_op)
1053 0 0 if ($ent->[2]) { }
1061 0 0 if ($name eq 'BEGIN')
1063 0 0 if (defined $use_dec and $self->{'expand'} < 5)
1064 0 0 if (0 == length $use_dec) { }
1072 0 0 if ($self->{'linenums'})
1077 0 0 if (class($cv->STASH) ne 'SPECIAL')
1079 0 0 if ($stash ne $self->{'curstash'})
1082 0 0 unless $name =~ /::/
1145 0 67 if $ignored_hints{$key}
1147 13 54 if $is_feature and not $doing_features
1148 12 42 if (not exists $from->{$key} or $from->{$key} ne $to->{$key})
1149 12 0 if $is_feature
1154 0 0 defined $to->{$key} ? :
1161 0 56 if $ignored_hints{$key}
1163 14 42 if $is_feature and not $doing_features
1164 0 42 unless (exists $to->{$key})
1165 0 0 if $is_feature
1170 3 2086 if (@features or @unfeatures)
1171 1 2 unless (%rev_feature)
1173 3 2086 if (@features)
1177 0 2089 if (@unfeatures)
1183 0 2089 if @decls
1198 0 0 if ($stash ne $self->{'curstash'})
1210 0 0 if ($warnings->isa('B::SPECIAL') and $$warnings == 4) { }
0 0 elsif ($warnings->isa('B::SPECIAL') and $$warnings == 5) { }
0 0 elsif ($warnings->isa('B::SPECIAL')) { }
1223 0 0 if (defined $warning_bits and !defined($self->{'warnings'}) || $self->{'warnings'} ne $warning_bits)
1230 0 0 $] < 5.008009 ? :
1232 0 0 if ($self->{'hints'} != $hints)
1238 0 0 if ($] > 5.009)
1242 0 0 if ($] >= 5.015006)
1246 0 0 if ($from != $to)
1247 0 0 if ($to == $feature::hint_mask) { }
1248 0 0 if ($self->{'hinthash'}) { }
1267 0 0 if ($] > 5.009)
1283 2 1286 if (($to & &WARN_MASK()) eq (warnings::bits('all') & &WARN_MASK())) { }
1286 0 elsif (($to & &WARN_MASK()) eq ("\000" x length($to) & &WARN_MASK())) { }
1307 0 2089 unless defined $seq
1317 0 0 if (not $lexical and $cv and ${\0 unless $cv->OUTSIDE;} != ${$self->{'curcv'};})
1318 0 0 unless $cv->OUTSIDE