Branch Coverage

autobox.xs
Criterion Covered Total %
branch 107 156 68.5


line true false branch
40 16 3 if (SvIOK(sv)) {
46 0 71 if (SvIOK(sv)) {
56 4 20 if (SvIOK(sv)) {
58 17 3 } else if (SvNOK(sv)) {
72 0 118 if (SvVOK(sv)) {
0 0 if (SvVOK(sv)) {
77 0 118 if (SvROK(sv)) {
83 0 0 if (SvROK(sv)) {
85 0 0 } else if (LvTYPE(sv) == 't' || LvTYPE(sv) == 'T') { /* tied lvalue */
0 0 } else if (LvTYPE(sv) == 't' || LvTYPE(sv) == 'T') { /* tied lvalue */
86 0 0 if (SvIOK(sv)) {
88 0 0 } else if (SvNOK(sv)) {
149 8 17 if (invocant->op_flags & OPf_PARENS) {
180 8 17 if (toggled) {
206 1245 1413 if ((PL_hints & 0x80020000) != 0x80020000) {
215 672 741 parent = OpHAS_SIBLING(cUNOPo->op_first) ? cUNOPo : ((UNOP *)cUNOPo->op_first);
217 1413 0 invocant = OpSIBLING(prev);
219 2557 0 for (cvop = invocant; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop));
2557 1413 for (cvop = invocant; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop));
225 1384 29 if ((cvop->op_type != OP_METHOD) && (cvop->op_type != OP_METHOD_NAMED)) {
672 712 if ((cvop->op_type != OP_METHOD) && (cvop->op_type != OP_METHOD_NAMED)) {
230 290 451 if ((invocant->op_type == OP_CONST) && (invocant->op_private & OPpCONST_BARE)) {
20 270 if ((invocant->op_type == OP_CONST) && (invocant->op_private & OPpCONST_BARE)) {
260 702 19 if (cvop->op_type == OP_METHOD_NAMED) {
264 639 63 if (
265 639 0 strEQ(method_name, "can") ||
266 606 33 strEQ(method_name, "DOES") ||
267 525 81 strEQ(method_name, "import") ||
268 504 21 strEQ(method_name, "isa") ||
269 497 7 strEQ(method_name, "unimport") ||
280 516 0 && (svp = hv_fetch(hh, "autobox", 7, FALSE))
281 516 0 && *svp
282 516 0 && SvROK(*svp);
516 0 && SvROK(*svp);
284 0 516 if (!has_bindings) {
295 25 491 switch (invocant->op_type) {
306 19 497 : autobox_method_named;
327 0 508 if (!(PL_op->op_flags & OPf_SPECIAL)) {
333 0 508 if (!invocant) {
342 163 345 if (SvROK(invocant) && SvOBJECT(SvRV(invocant))) {
10 153 if (SvROK(invocant) && SvOBJECT(SvRV(invocant))) {
347 0 498 SvGETMAGIC(invocant);
0 0 SvGETMAGIC(invocant);
352 0 498 if (!autobox_bindings) {
360 24 474 if (SvOK(invocant)) {
24 0 if (SvOK(invocant)) {
0 24 if (SvOK(invocant)) {
361 153 321 reftype = autobox_type(
372 438 60 if (!(svp && SvOK(*svp))) {
0 438 if (!(svp && SvOK(*svp))) {
0 0 if (!(svp && SvOK(*svp))) {
0 0 if (!(svp && SvOK(*svp))) {
377 438 0 packname = SvPV_const(packsv, packlen);
380 427 11 if (hashp) { /* shortcut for simple names */
383 422 5 if (he) {
387 422 0 cvgen = PL_sub_generation + HvMROMETA(stash)->cache_gen;
398 419 3 if (isGV(gv) && GvCV(gv) && (!GvCVGEN(gv) || GvCVGEN(gv) == cvgen)) {
419 0 if (isGV(gv) && GvCV(gv) && (!GvCVGEN(gv) || GvCVGEN(gv) == cvgen)) {
15 404 if (isGV(gv) && GvCV(gv) && (!GvCVGEN(gv) || GvCVGEN(gv) == cvgen)) {
15 0 if (isGV(gv) && GvCV(gv) && (!GvCVGEN(gv) || GvCVGEN(gv) == cvgen)) {
409 16 3 gv = gv_fetchmethod(
19 0 gv = gv_fetchmethod(
414 16 3 if (gv) {
415 16 0 return isGV(gv) ? MUTABLE_SV(GvCV(gv)) : MUTABLE_SV(gv);
426 8 11 if (SvROK(sv)) {
429 8 0 if (SvTYPE(cv) == SVt_PVCV) {
437 8 3 if (cv) {
453 427 70 if (cv) {
454 0 427 XPUSHs(cv);
464 22 0 if (AUTOBOX_OP_MAP) {
481 22 0 if (AUTOBOX_OP_MAP) {
493 9 73 if (AUTOBOX_SCOPE_DEPTH > 0) {
512 0 82 if (AUTOBOX_SCOPE_DEPTH == 0) {
516 9 73 if (AUTOBOX_SCOPE_DEPTH > 1) {
541 8 52 if (SvOK(sv)) {
8 0 if (SvOK(sv)) {
0 8 if (SvOK(sv)) {
542 18 34 type = autobox_type(aTHX_ (SvROK(sv) ? SvRV(sv) : sv), &len);