Branch Coverage

blib/lib/Devel/Chitin/OpTree.pm
Criterion Covered Total %
branch 96 140 68.5


line true false branch
25 35 0 if ($^V ge v5.22.0)
51 2751 3938 if ($$op and $op->flags & 4)
59 1 19 if (B::class($op) eq 'PMOP' and ref $op->pmreplroot and ${$op->pmreplroot;} and $op->pmreplroot->isa('B::OP'))
79 3 329 if (&reftype($start) eq 'CODE')
84 0 329 unless (&blessed($start) and $start->isa('Devel::Chitin::Location'))
88 0 329 if ($start->package eq 'main' and $start->subroutine eq 'MAIN') { }
0 329 elsif ($start->subroutine =~ /::__ANON__\[\S+:\d+\]/) { }
104 0 6689 unless (exists $params{'op'})
118 1905 4784 if ($b_class eq 'OP') { }
558 4226 elsif ($b_class eq 'UNOP' and $op->name eq 'null' and $op->flags & 4) { }
128 84 474 if ($num_children > 2) { }
216 258 elsif ($num_children > 1) { }
196 35 449 if ($bounce eq 'pp_null') { }
198 4 31 if (@$children == 2 and $self->first->is_scalar_container and $self->last->op->name eq 'readline') { }
31 0 elsif (@$children == 1) { }
270 240 4 $curr_package eq $gv_package ? :
277 958 5 if ($self->op->name eq 'null')
285 0 10 unless $parent
287 0 10 unless $children and @$children
290 10 12 if ($children->[$i] eq $self)
306 0 0 $bits & $flags{$_} ? :
336 0 0 if ($name eq 'null')
344 0 0 if ($op->class eq 'COP') { }
0 0 elsif ($op->is_scalar_container or $op->is_array_container or $op->op->name eq 'const') { }
0 0 elsif ($op->op->name eq 'multiconcat') { }
351 0 0 unless defined $mini_deparsed
358 0 0 if ($op->op->private & 16)
370 0 0 $current_callsite && ${$op->op;} == $current_callsite ? :
377 0 0 $current_callsite ? :
390 0 891 unless $parent
392 0 891 unless $siblings and @$siblings
396 647 467 if ($sib eq $self) { }
244 223 elsif ($sib->class eq 'COP') { }
408 0 0 unless $^V ge v5.10.1
436 0 1048 unless $op
466 5 4 if (@$children) { }
513 1 1 (shift())->op->flags & 128 ? :
520 0 1 $self->op->flags & 128 ? :
528 0 1047 if $self->op->name eq 'break'
543 2 4 if ($self->op->flags & 128) { }
547 0 4 if ($arg eq '@_') { }
565 1 3 $self->op->flags & 64 ? :
612 35 9 if ($self->class eq 'UNOP') { }
614 7 28 if $fh eq '$_'
617 9 0 $self->class eq 'SVOP' ? :
622 30 14 if (substr($perl_name, 0, 1) eq '-') { }
624 25 5 if ($fh) { }
642 70 124 if ($self->op->private & 16) { }
658 12 162 $self->is_null ? :
672 7 8 $self->is_null ? :
696 181 4317 $self->is_null ? :
709 1077 658 if not $sib or $self->isa('Devel::Chitin::OpTree::COP') or $self->is_null
712 0 658 if ($name eq 'lineseq') { }
1 1295 elsif ($name eq 'unstack' and $sib->op->flags & 128) { }
714 0 0 if ($first and not $first->is_null and $first->isa('Devel::Chitin::OpTree::COP') and $second and not $second->is_null and $second->op->name eq 'leaveloop')
735 12 0 if $name eq 'and' or $name eq 'or' or $name eq 'cond_expr'
743 2 6 if $name eq 'and' || $name eq 'or' and $self->parent->is_null and $self->parent->pre_siblings
751 1 0 $self->sibling->op->name eq 'unstack' ? :
773 1 0 $sib->op->name eq 'unstack' ? :
815 12 0 if ($self->op->name eq 'leave' and $top and $top->is_null and $top->class eq 'UNOP' and $condition_op = $top->first and $condition_op->op->name eq 'and' || $condition_op->op->name eq 'or' and $top->first->children->[1]->op->name eq 'lineseq' || $top->first->op->name eq 'lineseq' && !$top->first->children->[1]->is_null && $top->first->children->[1]->op->name eq 'unstack')
832 6 6 if ($condition_op->op->name eq 'and') { }
866 30 336 $params{'skip_quotes'} || $self->op->private & 64 && $self->op->name ne 'multiconcat' ? :
869 16 350 if ($string =~ /[\000-\037]/ and not $params{'regex_x_flag'})
870 15 1 unless $params{'skip_quotes'}
885 16 0 unless $params{'in_regex'}
901 5 1 $val + 0 eq $val ? :
913 1 11 unless ($val + 0 eq $val)
921 18 42 if ($val & $flag_value)
926 0 11 if ($val)
937 25 33 if ($newlines or $params{'force_multiline'}) { }