Branch Coverage

blib/lib/Devel/MAT/SV.pm
Criterion Covered Total %
branch 282 482 58.5


line true false branch
59 162 9 unless defined *{"$_[0]::type";}{"CODE"}
67 0 539875 unless my $class = $types{$type}
220 0 0 unless my $magic = $self->{'magic'}
241 27589 449 unless my $magic = $self->{'magic'}
246 314 135 $obj_at ? :
2 447 $ptr_at ? :
264 0 1 unless my $magic = $self->{'magic'}
269 1 0 if $type eq "<"
375 1399 169872 if ($match & 2 and my $blessed = $self->blessed)
376 1397 2 $no_desc ? :
380 154600 16671 unless $self->{'magic'}
383 15029 1643 if (my $obj = $self->df->sv_at($obj_at))
385 480 14549 $is_strong ? :
15029 0 if ($match & ($is_strong ? 1 : 2))
386 480 14549 $is_strong ? :
387 10008 5021 $no_desc ? :
392 4 16668 if ($match & 1 and my $ptr = $self->df->sv_at($ptr_at))
393 4 0 $no_desc ? :
398 171271 0 unless $self->{'annotations'}
400 0 0 unless my $val = $self->df->sv_at($val_at)
402 0 0 $no_desc ? :
406 0 171271 unless wantarray
621 0 0 defined $file ? :
686 951 13447 if $self->scalar
687 465 13933 if $self->array
688 747 13651 if $self->hash
689 11284 3114 if $self->code
690 14390 8 if $self->egv
691 40 14358 if $self->io
692 0 14398 if $self->form
704 19434 0 if ($match & 1)
706 98086 18518 unless my $sv = $self->$slot
707 13492 5026 $no_desc ? :
712 19426 8 if (my $egv = $self->egv)
716 19380 46 $egv_is_self ? :
19426 0 if ($match & ($egv_is_self ? 2 : 1))
717 19380 46 $egv_is_self ? :
718 14396 5030 $no_desc ? :
726 0 4 $no_desc ? :
777 0 204622 if $flags
829 0 5 unless defined(my $pv = $self->pv)
830 1 4 if defined $maxlen and $maxlen < length $pv
834 3 2 if ($pv =~ /^[\x20-\x7e]*$/u) { }
839 0 2 $3 ? :
0 2 $2 ? :
0 2 $1 ? :
842 1 4 if $truncated
862 1 1 unless my $glob_at = $self->glob_at
869 187232 196750 if defined $self->uv or defined $self->iv or defined $self->nv or defined $self->pv
878 13086 88973 if defined $self->uv
879 18 102041 if defined $self->iv
880 1512 100547 if defined $self->nv
881 45075 56984 if defined $self->pv
883 43668 58391 unless @flags
894 0 102146 if ($match & 1 and my $ourstash = $self->ourstash)
895 0 0 $no_desc ? :
929 0 25310 if $flags
966 104 7126 $self->is_weak ? :
979 104 7154 $is_weak ? :
7258 0 if ($match & ($is_weak ? 2 : 1) and my $rv = $self->rv)
980 104 7154 $is_weak ? :
981 7233 25 $no_desc ? :
985 0 7258 if ($match & 1 and my $ourstash = $self->ourstash)
986 0 0 $no_desc ? :
1001 0 0 if $self->uv
1021 0 0 $self->is_backrefs ? :
1033 28262 22834 $n ? :
1065 3 1 unless my $glob_at = $self->glob_at
1082 8390 12073 unless wantarray
1108 6396 2175 if $self->is_unreal
1123 9786 2222 if ($self->is_unreal) { }
1124 9786 0 if ($match & 2)
1126 0 4349391 unless my $sv = $self->elem($idx)
1128 24698 4324693 $no_desc ? :
1135 92 22379 unless my $sv = $self->elem($idx)
1137 12160 10219 $no_desc ? :
1139 22378 1 if ($match & 1)
1140 12160 10218 $no_desc ? :
1143 2976 0 if ($match & 4 and $sv->type eq "REF" and not $sv->{'magic'} and my $rv = $sv->rv)
1144 2382 594 $no_desc ? :
1153 0 1 $no_desc ? :
1189 0 0 if ($match & 1)
1193 0 0 if (my $padnames = $df->sv_at($self->elem_at(0)))
1194 0 0 $no_desc ? :
1199 0 0 unless my $pad = $df->sv_at($self->elem_at($idx))
1201 0 0 $no_desc ? :
1235 0 0 unless my $namepv = $self->elem($padix)
1236 0 0 unless $namepv->type eq "SCALAR"
1255 0 0 if $namepv = $self->elem($padix) and $namepv->type eq "SCALAR" and $namepv->pv eq $padname
1277 0 0 if ($match & 1)
1282 0 0 unless my $padname = $df->sv_at($self->elem_at($idx))
1284 0 0 $no_desc ? :
1336 0 0 $padname ? :
1358 0 4 unless my $padix = $self->padcv->padix_from_padname($padname)
1376 5585 463 if ($match & 1 and my $argsav = $svs[0])
1377 5574 11 $no_desc ? :
1382 2705 46593 unless my $sv = $svs[$idx]
1385 240 46353 unless ($no_desc)
1387 84 156 $padname ? :
1388 70 170 if ($name) { }
1396 46593 0 if ($match & 1)
1397 46353 240 $no_desc ? :
1400 347 0 if ($match & 4 and $sv->type eq "REF" and not $sv->{'magic'} and my $rv = $sv->rv)
1401 342 5 $no_desc ? :
1449 2159 7369 if (my $backrefs = $self->backrefs)
1450 2124 35 if $backrefs->type eq "ARRAY"
1465 0 3 unless my $glob_at = $self->glob_at
1514 0 517 unless wantarray
1523 635 2087 $self->{'name'} ? :
1536 5654 2163 if (my $backrefs = $self->backrefs)
1539 5644 10 if ($backrefs->type eq 'ARRAY') { }
1540 5644 0 if ($match & 1)
1541 607 5037 $no_desc ? :
1545 5644 0 if ($match & 4)
1547 23735 5298939 $no_desc ? :
1553 10 0 if ($match & 2)
1554 10 0 $no_desc ? :
1561 23239 2243644 unless my $sv = $df->sv_at($self->value_at($key))
1562 30440 2213204 $no_desc ? :
1565 2243644 0 if ($match & 1)
1566 30440 2213204 $no_desc ? :
1569 4446 0 if ($match & 4 and $sv->type eq "REF" and not $sv->{'magic'} and my $rv = $sv->rv)
1570 4432 14 $no_desc ? :
1579 0 1 $no_desc ? :
1582 0 1 $no_desc ? :
1667 0 1 unless my $sv = $self->value($key)
1668 1 0 if ($sv->type eq 'GLOB') { }
0 0 elsif ($sv->type eq 'REF') { }
1707 5672 0 if ($match & 1)
1708 0 5672 if (my $sv = $self->mro_linearall)
1709 0 0 $no_desc ? :
1712 1926 3746 if (my $sv = $self->mro_linearcurrent)
1713 361 1565 $no_desc ? :
1716 0 5672 if (my $sv = $self->mro_nextmethod)
1717 0 0 $no_desc ? :
1720 1926 3746 if (my $sv = $self->mro_isa)
1721 361 1565 $no_desc ? :
1768 0 40432 unless defined $depth
1777 40432 0 if $df->{'perlver'} > 85262335
1798 109703 279891 if ($(Syntax::Keyword::Match/topic) == 1) { }
0 279891 elsif ($(Syntax::Keyword::Match/topic) == 2) { }
41598 238293 elsif ($(Syntax::Keyword::Match/topic) == 3) { }
0 238293 elsif ($(Syntax::Keyword::Match/topic) == 4) { }
164116 74177 elsif ($(Syntax::Keyword::Match/topic) == 5) { }
0 74177 elsif ($(Syntax::Keyword::Match/topic) == 6) { }
21035 53142 elsif ($(Syntax::Keyword::Match/topic) == 7) { }
21105 32037 elsif ($(Syntax::Keyword::Match/topic) == 8) { }
32037 0 elsif ($(Syntax::Keyword::Match/topic) == 9) { }
0 0 elsif ($(Syntax::Keyword::Match/topic) == 10) { }
1819 0 40432 if ($padlist)
1828 40432 0 if ($df->{'perlver'} >= 85065728) { }
0 0 elsif ($padlist) { }
1841 0 40432 if ($padnames)
1848 0 0 unless my $padnamesv = $padnames->elem($padix)
1849 0 0 if $padnamesv->immortal
1856 7 21098 unless $pad
1865 0 40432 if ($df->ithreads)
1869 0 0 unless my $idxes = $$self{"${type}ix"}
1873 0 0 $e ? :
1877 2460 37972 if ($self->is_cloned and my $oproot = $self->oproot)
1878 2460 0 if (my $protosub = $df->{'protosubs_by_oproot'}{$oproot})
1947 0 0 $line ? :
2005 13538 6520 unless $self->{'consts_at'}
2025 0 0 $self->stash ? :
2032 0 23 if (defined(my $hekname = $self->hekname)) { }
22 1 elsif (my $glob = $self->glob) { }
2091 5 11 if defined $padnames->[$padix] and defined($thisname = $padnames->[$padix]->name) and $thisname eq $padname
2152 5115 0 $self->{'pads'} ? :
2167 7 0 $self->{'pads'} ? :
2191 0 3 unless $depth
2203 5732 5819 if $self->oproot
2204 3528 8023 if $self->constval
2205 5102 6449 if $self->is_xsub
2207 702 10849 if $self->is_cloned
2208 264 11287 if $self->is_clone
2221 14942 0 $pads ? :
2228 307 14635 $is_weakoutside ? :
5792 9150 if ($match & ($is_weakoutside ? 2 : 1) and my $scope = $self->scope)
2229 307 5485 $is_weakoutside ? :
2230 5751 41 $no_desc ? :
2234 12724 2218 if ($match & 2 and my $stash = $self->stash)
2235 9343 3381 $no_desc ? :
2240 1283 13659 $is_strong_gv ? :
14671 271 if ($match & ($is_strong_gv ? 1 : 2) and my $glob = $self->glob)
2241 1283 13388 $is_strong_gv ? :
2242 11289 3382 $no_desc ? :
2246 6674 8268 if ($match & 1 and my $constval = $self->constval)
2247 3528 3146 $no_desc ? :
2251 704 14238 if ($match & 8 and my $protosub = $self->protosub)
2252 702 2 $no_desc ? :
2260 0 14942 $ithreads ? :
14942 0 if ($match & ($ithreads ? 4 : 1))
2261 0 14942 $ithreads ? :
2264 0 31563 unless $sv
2265 31290 273 $no_desc ? :
2269 0 11973 unless $sv
2270 11870 103 $no_desc ? :
2275 0 14942 if ($match & 1 and $have_padlist)
2276 0 0 $no_desc ? :
2282 0 14942 $have_padlist ? :
14942 0 if ($match & ($have_padlist ? 4 : 1))
2283 0 14942 $have_padlist ? :
2285 0 14942 if (my $padnames_av = $self->padnames_av)
2286 0 0 $no_desc ? :
2291 2 6077 unless my $pad = $$pads[$depth - 1]
2293 6031 46 $no_desc ? :
2357 32 0 if ($match & 1)
2358 0 32 if (my $gv = $self->topgv)
2359 0 0 $no_desc ? :
2362 0 32 if (my $gv = $self->formatgv)
2363 0 0 $no_desc ? :
2366 0 32 if (my $gv = $self->bottomgv)
2367 0 0 $no_desc ? :
2408 0 0 if ($match & 1 and my $sv = $self->target)
2409 0 0 $no_desc ? :
2520 0 0 $n ? :
2540 0 0 unless wantarray
2561 0 0 if ($name_or_fieldix =~ /^\d+$/u) { }
2588 0 0 unless my $sv = $self->field($field->fieldix)
2590 0 0 $no_desc ? :
2592 0 0 if ($match & 1)
2593 0 0 $no_desc ? :
2596 0 0 if ($match & 4 and $sv->type eq "REF" and not $sv->{'magic'} and my $rv = $sv->rv)
2597 0 0 $no_desc ? :
2644 0 0 if ($(Syntax::Keyword::Match/topic) == 1) { }
2695 0 0 if ($name_or_fieldix =~ /^\d+$/u) { }
2708 0 0 if $name_or_fieldix =~ /^\d+$/u
2720 0 0 if ($match & 1)
2721 0 0 if (my $sv = $self->adjust_blocks)
2722 0 0 $no_desc ? :
2772 0 0 if ($type == 0) { }
0 0 elsif ($type == 1 or $type == 2) { }
0 0 elsif ($type == 3) { }
0 0 elsif ($type == 4) { }
2812 0 0 if ($field->type == 0) { }
2846 0 0 unless defined(my $idx = &first(sub { $fields->[$_]->name eq $name; } , 0 .. $#$fields))
2851 0 0 if ($field->type == 0) { }
2900 0 0 unless $match & 1
2909 0 0 unless $field->type == 0
2911 0 0 unless my $sv = $df->sv_at($self->field($idx))
2913 0 0 $no_desc ? :