Branch Coverage

lib/XS/JIT/Builder.xs
Criterion Covered Total %
branch 266 398 66.8


line true false branch
16 2937 0 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVHV) {
0 2937 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVHV) {
23 2937 0 if (!svp || !SvOK(*svp)) {
0 2937 if (!svp || !SvOK(*svp)) {
76 6 369 for (i = 1; i < items; i += 2) {
77 6 0 if (i + 1 < items) {
79 4 2 if (strEQ(key, "indent_width")) {
81 2 0 } else if (strEQ(key, "use_tabs")) {
469 24 0 if (items > 3 && SvOK(ST(3))) {
19 5 if (items > 3 && SvOK(ST(3))) {
966 3 2 if (SvOK(len_var)) {
1023 4 18 if (items > 2 && SvOK(ST(2))) {
3 1 if (items > 2 && SvOK(ST(2))) {
1139 10 0 if (items > 2) {
1141 10 0 if (SvROK(opts) && SvTYPE(SvRV(opts)) == SVt_PVHV) {
10 0 if (SvROK(opts) && SvTYPE(SvRV(opts)) == SVt_PVHV) {
1144 10 0 if (val && *val && SvTRUE(*val)) {
10 0 if (val && *val && SvTRUE(*val)) {
1 9 if (val && *val && SvTRUE(*val)) {
1149 1 9 if (readonly) {
1206 3 3 if (num_attrs > 0) {
1209 8 3 for (i = 0; i < num_attrs; i++) {
1211 8 0 if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVAV) {
8 0 if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVAV) {
8 0 if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVAV) {
1216 8 0 if (name_sv && len_sv) {
8 0 if (name_sv && len_sv) {
1220 0 0 } else if (elem && SvPOK(*elem)) {
0 0 } else if (elem && SvPOK(*elem)) {
1330 6 0 if (num_required > 0) {
1333 9 6 for (i = 0; i < num_required; i++) {
1335 9 0 if (elem && *elem) {
9 0 if (elem && *elem) {
1415 13 1 if (num_attrs > 0) {
1418 17 13 for (i = 0; i < num_attrs; i++) {
1420 17 0 if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
17 0 if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
17 0 if (elem && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
1426 17 0 if (val && SvOK(*val)) {
17 0 if (val && SvOK(*val)) {
1432 3 14 if (val && SvTRUE(*val)) {
3 0 if (val && SvTRUE(*val)) {
1438 3 14 if (val && SvIOK(*val)) {
3 0 if (val && SvIOK(*val)) {
1444 3 14 if (val && SvOK(*val)) {
3 0 if (val && SvOK(*val)) {
1450 1 16 if (val && SvTRUE(*val)) {
1 0 if (val && SvTRUE(*val)) {
1456 1 16 if (val && SvOK(*val)) {
1 0 if (val && SvOK(*val)) {
1462 3 14 if (val && SvOK(*val)) {
3 0 if (val && SvOK(*val)) {
1469 0 17 if (val && SvOK(*val)) {
0 0 if (val && SvOK(*val)) {
1476 2 15 if (val && SvOK(*val)) {
2 0 if (val && SvOK(*val)) {
1483 2 15 if (val && SvTRUE(*val)) {
2 0 if (val && SvTRUE(*val)) {
1489 1 16 if (val && SvTRUE(*val)) {
1 0 if (val && SvTRUE(*val)) {
1519 1 0 if (num_args > 0) {
1521 2 1 for (i = 0; i < num_args; i++) {
1523 2 0 if (elem && SvOK(*elem)) {
2 0 if (elem && SvOK(*elem)) {
1554 1 0 if (num_args > 0) {
1556 2 1 for (i = 0; i < num_args; i++) {
1558 2 0 if (elem && SvOK(*elem)) {
2 0 if (elem && SvOK(*elem)) {
1694 1 0 if (num_values > 0) {
1696 3 1 for (i = 0; i < num_values; i++) {
1698 3 0 if (elem && SvOK(*elem)) {
3 0 if (elem && SvOK(*elem)) {
1944 2 0 STRLEN key_len = 0;
1947 0 2 if (items > 3) {
1958 0 2 RETVAL = (int)xs_jit_inline_get_type(aTHX_ cv);
2334 1 0 if (items > 3) {
2337 1 0 if (items > 4) {
2638 3 26 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
3 0 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
3 0 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
3 0 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
2647 3 0 if (key_val && SvOK(*key_val)) {
3 0 if (key_val && SvOK(*key_val)) {
2653 3 0 if (when_val && SvOK(*when_val) && SvROK(*when_val)) {
3 0 if (when_val && SvOK(*when_val) && SvROK(*when_val)) {
3 0 if (when_val && SvOK(*when_val) && SvROK(*when_val)) {
2654 2 1 if (SvTYPE(SvRV(*when_val)) == SVt_PVHV) {
2664 8 2 while ((entry = hv_iternext(when_hv))) {
2666 0 8 const char* key = HePV(entry, klen);
2667 6 2 if (!strEQ(key, "default")) {
2672 2 0 if (given_struct.num_when > 0) {
2676 8 2 while ((entry = hv_iternext(when_hv))) {
2678 0 8 const char* key = HePV(entry, klen);
2681 2 6 if (strEQ(key, "default")) {
2683 2 0 if (SvROK(val) && SvTYPE(SvRV(val)) == SVt_PVHV) {
2 0 if (SvROK(val) && SvTYPE(SvRV(val)) == SVt_PVHV) {
2696 6 0 if (SvROK(val) && SvTYPE(SvRV(val)) == SVt_PVHV) {
6 0 if (SvROK(val) && SvTYPE(SvRV(val)) == SVt_PVHV) {
2705 1 0 else if (SvTYPE(SvRV(*when_val)) == SVt_PVAV) {
2711 1 0 if (len > 0) {
2714 2 1 for (i = 0; i < len; i++) {
2716 2 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
2 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
2 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
2 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
2728 1 2 if (default_val && SvOK(*default_val) && given_struct.num_default_actions == 0) {
1 0 if (default_val && SvOK(*default_val) && given_struct.num_default_actions == 0) {
1 0 if (default_val && SvOK(*default_val) && given_struct.num_default_actions == 0) {
2740 26 0 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
26 0 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
26 0 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
26 0 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
2746 4 22 if (val && SvOK(*val) && SvROK(*val)) {
4 0 if (val && SvOK(*val) && SvROK(*val)) {
4 0 if (val && SvOK(*val) && SvROK(*val)) {
2747 2 2 if (SvTYPE(SvRV(*val)) == SVt_PVHV) {
2753 2 0 else if (SvTYPE(SvRV(*val)) == SVt_PVAV) {
2759 2 0 if (len > 0) {
2762 6 2 for (i = 0; i < len; i++) {
2764 6 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
6 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
6 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
6 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
2776 9 17 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
9 0 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
9 0 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
9 0 if (val && SvOK(*val) && SvROK(*val) && SvTYPE(SvRV(*val)) == SVt_PVHV) {
2779 9 0 if (then_val && SvOK(*then_val)) {
9 0 if (then_val && SvOK(*then_val)) {
2810 18 1 if (items > 3 && SvOK(ST(3))) {
18 0 if (items > 3 && SvOK(ST(3))) {
2816 18 1 if (cases_len > 0) {
2819 74 18 for (i = 0; i < cases_len; i++) {
2821 74 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
74 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
74 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
74 0 if (elem && SvOK(*elem) && SvROK(*elem) && SvTYPE(SvRV(*elem)) == SVt_PVHV) {
2835 18 1 if (default_sv && SvROK(default_sv) && SvTYPE(SvRV(default_sv)) == SVt_PVHV) {
18 0 if (default_sv && SvROK(default_sv) && SvTYPE(SvRV(default_sv)) == SVt_PVHV) {
18 0 if (default_sv && SvROK(default_sv) && SvTYPE(SvRV(default_sv)) == SVt_PVHV) {
2860 14 1 if (!SvOK(name_sv) || !SvPOK(name_sv) || SvCUR(name_sv) == 0) {
14 0 if (!SvOK(name_sv) || !SvPOK(name_sv) || SvCUR(name_sv) == 0) {
0 14 if (!SvOK(name_sv) || !SvPOK(name_sv) || SvCUR(name_sv) == 0) {
2871 1 13 if (num_values <= 0) {
2876 59 13 for (i = 0; i < num_values; i++) {
2878 59 0 if (elem && SvOK(*elem)) {
59 0 if (elem && SvOK(*elem)) {
2887 5 8 if (items > 3 && SvOK(ST(3)) && SvROK(ST(3)) && SvTYPE(SvRV(ST(3))) == SVt_PVHV) {
5 0 if (items > 3 && SvOK(ST(3)) && SvROK(ST(3)) && SvTYPE(SvRV(ST(3))) == SVt_PVHV) {
5 0 if (items > 3 && SvOK(ST(3)) && SvROK(ST(3)) && SvTYPE(SvRV(ST(3))) == SVt_PVHV) {
5 0 if (items > 3 && SvOK(ST(3)) && SvROK(ST(3)) && SvTYPE(SvRV(ST(3))) == SVt_PVHV) {
2892 4 1 if (start_sv && SvOK(*start_sv)) {
4 0 if (start_sv && SvOK(*start_sv)) {
2895 2 3 if (prefix_sv && SvOK(*prefix_sv)) {
2 0 if (prefix_sv && SvOK(*prefix_sv)) {
2919 10 1 if (!SvOK(func_name_sv) || !SvPOK(func_name_sv) || SvCUR(func_name_sv) == 0) {
10 0 if (!SvOK(func_name_sv) || !SvPOK(func_name_sv) || SvCUR(func_name_sv) == 0) {
1 9 if (!SvOK(func_name_sv) || !SvPOK(func_name_sv) || SvCUR(func_name_sv) == 0) {
2928 2 7 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
2 0 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
2 0 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
2 0 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
2933 1 1 if (cache_sv && SvOK(*cache_sv)) {
1 0 if (cache_sv && SvOK(*cache_sv)) {
2936 1 1 if (ttl_sv && SvOK(*ttl_sv)) {
1 0 if (ttl_sv && SvOK(*ttl_sv)) {
2989 11 1 if (!SvOK(role_name_sv) || !SvPOK(role_name_sv) || SvCUR(role_name_sv) == 0) {
11 0 if (!SvOK(role_name_sv) || !SvPOK(role_name_sv) || SvCUR(role_name_sv) == 0) {
1 10 if (!SvOK(role_name_sv) || !SvPOK(role_name_sv) || SvCUR(role_name_sv) == 0) {
2996 3 7 if (strEQ(role_name, "Comparable")) {
2998 2 5 } else if (strEQ(role_name, "Cloneable")) {
3000 1 4 } else if (strEQ(role_name, "Serializable")) {
3002 3 1 } else if (strEQ(role_name, "Observable")) {
3011 2 7 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
2 0 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
2 0 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
2 0 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
3016 1 1 if (compare_key_sv && SvOK(*compare_key_sv)) {
1 0 if (compare_key_sv && SvOK(*compare_key_sv)) {
3019 1 1 if (observers_attr_sv && SvOK(*observers_attr_sv)) {
1 0 if (observers_attr_sv && SvOK(*observers_attr_sv)) {
3040 6 1 if (!SvROK(roles_av) || SvTYPE(SvRV(roles_av)) != SVt_PVAV) {
1 5 if (!SvROK(roles_av) || SvTYPE(SvRV(roles_av)) != SVt_PVAV) {
3048 1 4 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
1 0 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
1 0 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
1 0 if (items > 2 && SvOK(ST(2)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
3052 9 4 for (i = 0; i < len; i++) {
3054 9 0 if (role_svp && SvOK(*role_svp)) {
9 0 if (role_svp && SvOK(*role_svp)) {
3061 4 5 if (strEQ(role_name, "Comparable")) {
3063 2 3 } else if (strEQ(role_name, "Cloneable")) {
3065 1 2 } else if (strEQ(role_name, "Serializable")) {
3067 1 1 } else if (strEQ(role_name, "Observable")) {
3076 2 6 if (opts_hv) {
3080 2 0 if (compare_key_sv && SvOK(*compare_key_sv)) {
2 0 if (compare_key_sv && SvOK(*compare_key_sv)) {
3083 2 0 if (observers_attr_sv && SvOK(*observers_attr_sv)) {
2 0 if (observers_attr_sv && SvOK(*observers_attr_sv)) {