Branch Coverage

lib/Syntax/Keyword/Match.xs
Criterion Covered Total %
branch 115 240 47.9


line true false branch
46 1 3 if(
48 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)
54 1 2 switch((SvUOK(left) ? 1 : 0) | (SvUOK(right) ? 2 : 0)) {
61 1 0 if(riv < 0)
69 0 0 if(liv < 0)
80 2 0 NV const rnv = SvNV_nomg(right);
81 2 0 NV const lnv = SvNV_nomg(left);
102 0 4 bool has_magic = SvAMAGIC(TARG);
0 0 bool has_magic = SvAMAGIC(TARG);
0 0 bool has_magic = SvAMAGIC(TARG);
104 8 0 for(idx = 0; idx < n_cases; idx++) {
108 0 8 if(has_magic &&
0 0 if(has_magic &&
110 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))
117 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)) ?
132 2 1000010 bool has_magic = SvAMAGIC(TARG);
2 0 bool has_magic = SvAMAGIC(TARG);
0 2 bool has_magic = SvAMAGIC(TARG);
134 9000057 1000002 for(idx = 0; idx < n_cases; idx++) {
138 3 9000054 if(has_magic &&
3 0 if(has_magic &&
140 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))
143 9 9000045 else if(sv_eq(TARG, val))
184 57 55 for(i = 0; i < n_cases; i++) {
190 56 1 if(is_if)
203 4 0 if(caseop->op_type != OP_MATCH || cPMOPx(caseop)->op_first)
0 4 if(caseop->op_type != OP_MATCH || cPMOPx(caseop)->op_first)
219 2 55 if(testop)
227 36 19 if(elseop)
272 30 8 while(n_cases) {
278 30 0 OP *blockstart = LINKLIST(blockop);
283 30 30 for(U32 casei = 0; casei < this_n_cases; casei++) {
287 0 30 if(is_if)
304 7 1 if(elseop) {
305 6 1 o->op_other = LINKLIST(elseop);
342 0 34 Newx(blocks, n_blocks, struct MatchCaseBlock);
346 85 34 for(blocki = 0; blocki < n_blocks; blocki++) {
353 0 85 Newx(block->cases, n_cases, struct MatchCase);
356 87 85 for(int i = 0; i < n_cases; i++) {
366 14 20 if(has_default)
387 85 34 while(blocki >= 0) {
398 87 85 for(U32 casei = 0; casei < n_cases; casei++) {
399 1 86 if(block->cases[casei].is_if) {
417 31 44 if(use_dispatch && caseop->op_type == OP_CONST)
30 1 if(use_dispatch && caseop->op_type == OP_CONST)
428 30 55 if(this_block_dispatch) {
433 1 54 if(n_dispatch) {
442 7 27 if(n_dispatch)
487 6 0 if(!SvROK(sv) || !SvOBJECT(SvRV(sv)))
6 0 if(!SvROK(sv) || !SvOBJECT(SvRV(sv)))
495 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")) {
497 2 0 CV *isacv = isGV(isagv) ? GvCV(isagv) : MUTABLE_CV(isagv);
504 0 2 EXTEND(SP, 2);
505 0 2 PUSHMARK(SP);
514 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);
517 2 0 FREETMPS;
532 3 3 SETs(boolSV(S_sv_isa_sv(aTHX_ lhs, rhs)));
539 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)