Branch Coverage

lib/Syntax/Keyword/Match.xs
Criterion Covered Total %
branch 110 234 47.0


line true false branch
54 1 3 if(
56 2 0 SvIV_please_nomg(right) && SvIV_please_nomg(left)
3 0 SvIV_please_nomg(right) && SvIV_please_nomg(left)
1 0 SvIV_please_nomg(right) && SvIV_please_nomg(left)
0 1 SvIV_please_nomg(right) && SvIV_please_nomg(left)
3 0 SvIV_please_nomg(right) && SvIV_please_nomg(left)
62 1 2 switch((SvUOK(left) ? 1 : 0) | (SvUOK(right) ? 2 : 0)) {
69 1 0 if(riv < 0)
77 0 0 if(liv < 0)
88 2 0 NV const rnv = SvNV_nomg(right);
89 2 0 NV const lnv = SvNV_nomg(left);
110 0 4 bool has_magic = SvAMAGIC(TARG);
0 0 bool has_magic = SvAMAGIC(TARG);
0 0 bool has_magic = SvAMAGIC(TARG);
112 8 0 for(idx = 0; idx < n_cases; idx++) {
116 0 8 if(has_magic &&
0 0 if(has_magic &&
118 0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
125 3 5 else if((SvIOK_notUV(TARG) && SvIOK_notUV(val)) ?
3 0 else if((SvIOK_notUV(TARG) && SvIOK_notUV(val)) ?
4 4 else if((SvIOK_notUV(TARG) && SvIOK_notUV(val)) ?
140 2 1000010 bool has_magic = SvAMAGIC(TARG);
2 0 bool has_magic = SvAMAGIC(TARG);
0 2 bool has_magic = SvAMAGIC(TARG);
142 9000057 1000002 for(idx = 0; idx < n_cases; idx++) {
146 3 9000054 if(has_magic &&
3 0 if(has_magic &&
148 3 0 if(SvTRUE(ret))
0 3 if(SvTRUE(ret))
0 3 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 3 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
3 0 if(SvTRUE(ret))
3 0 if(SvTRUE(ret))
2 1 if(SvTRUE(ret))
0 2 if(SvTRUE(ret))
0 0 if(SvTRUE(ret))
1 2 if(SvTRUE(ret))
151 9 9000045 else if(sv_eq(TARG, val))
189 53 51 for(i = 0; i < n_cases; i++) {
205 4 0 if(caseop->op_type != OP_MATCH || cPMOPx(caseop)->op_first)
0 4 if(caseop->op_type != OP_MATCH || cPMOPx(caseop)->op_first)
221 2 51 if(testop)
229 33 18 if(elseop)
274 30 8 while(n_cases) {
280 30 0 OP *blockstart = LINKLIST(blockop);
285 30 30 for(U32 casei = 0; casei < this_n_cases; casei++) {
302 7 1 if(elseop) {
303 6 1 o->op_other = LINKLIST(elseop);
340 0 32 Newx(blocks, n_blocks, struct MatchCaseBlock);
344 81 32 for(blocki = 0; blocki < n_blocks; blocki++) {
351 0 81 Newx(block->case_exprs, n_cases, OP *);
354 83 81 for(int i = 0; i < n_cases; i++)
362 13 19 if(has_default)
384 81 32 while(blocki >= 0) {
395 83 81 for(U32 casei = 0; casei < n_cases; casei++) {
409 31 41 if(use_dispatch && caseop->op_type == OP_CONST)
30 1 if(use_dispatch && caseop->op_type == OP_CONST)
420 30 51 if(this_block_dispatch) {
425 1 50 if(n_dispatch) {
434 7 25 if(n_dispatch)
476 6 0 if(!SvROK(sv) || !SvOBJECT(SvRV(sv)))
6 0 if(!SvROK(sv) || !SvOBJECT(SvRV(sv)))
484 6 0 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
6 0 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
6 0 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
0 6 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
0 0 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
6 0 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
0 6 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
2 4 if(isagv && !strEQ(HvNAME(GvSTASH(isagv)), "UNIVERSAL")) {
486 2 0 CV *isacv = isGV(isagv) ? GvCV(isagv) : MUTABLE_CV(isagv);
493 0 2 EXTEND(SP, 2);
494 0 2 PUSHMARK(SP);
503 2 0 bool ret = SvTRUE(retsv);
0 2 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 2 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 2 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
2 0 bool ret = SvTRUE(retsv);
2 0 bool ret = SvTRUE(retsv);
1 1 bool ret = SvTRUE(retsv);
0 1 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
1 1 bool ret = SvTRUE(retsv);
0 0 bool ret = SvTRUE(retsv);
506 2 0 FREETMPS;
521 3 3 SETs(boolSV(S_sv_isa_sv(aTHX_ lhs, rhs)));
528 7 0 if(rhs->op_type == OP_CONST && rhs->op_private & OPpCONST_BARE)
7 0 if(rhs->op_type == OP_CONST && rhs->op_private & OPpCONST_BARE)