Branch Coverage

autobox.xs
Criterion Covered Total %
branch 105 152 69.0


line true false branch
72 0 126 if (SvROK(sv)) {
79 71 0 if (SvIOK(sv) || SvUOK(sv)) { /* XXX not sure this is ever true */
0 71 if (SvIOK(sv) || SvUOK(sv)) { /* XXX not sure this is ever true */
86 3 16 if (SvIOK(sv) || SvUOK(sv)) {
0 3 if (SvIOK(sv) || SvUOK(sv)) {
97 20 3 if (SvIOK(sv) || SvUOK(sv)) {
0 20 if (SvIOK(sv) || SvUOK(sv)) {
99 17 3 } else if (SvNOK(sv)) {
117 0 118 if (SvVOK(sv)) {
0 0 if (SvVOK(sv)) {
122 0 118 if (SvROK(sv)) {
132 0 0 if (SvROK(sv)) {
134 0 0 } else if (LvTYPE(sv) == 't' || LvTYPE(sv) == 'T') { /* tied lvalue */
0 0 } else if (LvTYPE(sv) == 't' || LvTYPE(sv) == 'T') { /* tied lvalue */
135 0 0 if (SvIOK(sv) || SvUOK(sv)) {
0 0 if (SvIOK(sv) || SvUOK(sv)) {
137 0 0 } else if (SvNOK(sv)) {
204 8 17 if (invocant->op_flags & OPf_PARENS) {
235 8 17 if (toggled) {
261 1565 1413 if ((PL_hints & 0x80020000) != 0x80020000) {
270 672 741 parent = OpHAS_SIBLING(cUNOPo->op_first) ? cUNOPo : ((UNOP *)cUNOPo->op_first);
272 1413 0 invocant = OpSIBLING(prev);
274 2557 0 for (cvop = invocant; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop));
2557 1413 for (cvop = invocant; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop));
280 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)) {
285 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)) {
315 702 19 if (cvop->op_type == OP_METHOD_NAMED) {
320 639 63 strEQ(method_name, "can") ||
321 639 0 strEQ(method_name, "DOES") ||
322 606 33 strEQ(method_name, "import") ||
323 525 81 strEQ(method_name, "isa") ||
324 504 21 strEQ(method_name, "unimport") ||
325 7 497 strEQ(method_name, "VERSION")
335 516 0 && (svp = hv_fetch(hh, "autobox", 7, FALSE))
336 516 0 && *svp
337 516 0 && SvROK(*svp);
516 0 && SvROK(*svp);
339 0 516 if (!has_bindings) {
350 25 491 switch (invocant->op_type) {
361 19 497 : autobox_method_named;
382 0 508 if (!(PL_op->op_flags & OPf_SPECIAL)) {
390 0 508 if (!invocant) {
399 163 345 if (SvROK(invocant) && SvOBJECT(SvRV(invocant))) {
10 153 if (SvROK(invocant) && SvOBJECT(SvRV(invocant))) {
404 0 498 SvGETMAGIC(invocant);
0 0 SvGETMAGIC(invocant);
409 0 498 if (!autobox_bindings) {
417 474 24 if (SvOK(invocant)) {
419 153 321 aTHX_ (SvROK(invocant) ? SvRV(invocant) : invocant),
429 438 60 if (!(svp && SvOK(*svp))) {
0 438 if (!(svp && SvOK(*svp))) {
437 427 11 if (hashp) { /* shortcut for simple names */
440 422 5 if (he) {
444 422 0 cvgen = PL_sub_generation + HvMROMETA(stash)->cache_gen;
455 422 0 if (isGV(gv) && GvCV(gv) && (!GvCVGEN(gv) || GvCVGEN(gv) == cvgen)) {
422 0 if (isGV(gv) && GvCV(gv) && (!GvCVGEN(gv) || GvCVGEN(gv) == cvgen)) {
15 407 if (isGV(gv) && GvCV(gv) && (!GvCVGEN(gv) || GvCVGEN(gv) == cvgen)) {
15 0 if (isGV(gv) && GvCV(gv) && (!GvCVGEN(gv) || GvCVGEN(gv) == cvgen)) {
466 16 0 gv = gv_fetchmethod(
471 13 3 if (gv) {
472 13 0 return isGV(gv) ? MUTABLE_SV(GvCV(gv)) : MUTABLE_SV(gv);
483 8 11 if (SvROK(sv)) {
486 8 0 if (SvTYPE(cv) == SVt_PVCV) {
494 8 3 if (cv) {
510 427 70 if (cv) {
511 0 427 XPUSHs(cv);
521 23 0 if (AUTOBOX_OP_MAP) {
538 23 0 if (AUTOBOX_OP_MAP) {
550 9 73 if (AUTOBOX_SCOPE_DEPTH > 0) {
569 0 82 if (AUTOBOX_SCOPE_DEPTH == 0) {
573 9 73 if (AUTOBOX_SCOPE_DEPTH > 1) {
593 54 12 STRLEN len = 0;
598 54 12 if (SvOK(sv)) {
599 18 36 type = autobox_type(aTHX_ (SvROK(sv) ? SvRV(sv) : sv), &len);