Branch Coverage

Declare.xs
Criterion Covered Total %
branch 115 220 52.2


line true false branch
71 0 10720 if (!is_declarator)
76 10720 0 curstash_name = HvNAME(PL_curstash);
10720 0 curstash_name = HvNAME(PL_curstash);
0 10720 curstash_name = HvNAME(PL_curstash);
0 0 curstash_name = HvNAME(PL_curstash);
10720 0 curstash_name = HvNAME(PL_curstash);
0 10720 curstash_name = HvNAME(PL_curstash);
77 0 10720 if (!curstash_name)
83 261 10459 if (!is_declarator_pack_ref || !SvROK(*is_declarator_pack_ref))
0 261 if (!is_declarator_pack_ref || !SvROK(*is_declarator_pack_ref))
97 109 152 if (!is_declarator_flag_ref
0 109 if (!is_declarator_flag_ref
0 109 if (!is_declarator_flag_ref
0 109 if (!is_declarator_flag_ref
109 0 if (!is_declarator_flag_ref
98 109 0 || !SvIOK(*is_declarator_flag_ref)
99 109 0 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
109 0 || !SvTRUE(*is_declarator_flag_ref))
0 109 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
0 109 || !SvTRUE(*is_declarator_flag_ref))
0 0 || !SvTRUE(*is_declarator_flag_ref))
119 0 128 PUSHMARK(SP);
120 0 128 XPUSHs(sv_2mortal(newSVpv(type, 0)));
121 0 128 XPUSHs(sv_2mortal(newSVpv(name, 0)));
122 0 128 XPUSHs(sv_2mortal(newSViv(offset)));
127 127 0 FREETMPS;
132 0 384 if (!DD_HAVE_PARSER) {
141 0 352 if (SvLEN(PL_linestr) < new_len) {
142 0 0 croak("PL_linestr not long enough, was Devel::Declare loaded soon enough in %s",
154 4 348 if ( DD_DEBUG_UPDATED_LINESTR && PERLDB_LINE && PL_curstash != PL_debstash) {
4 0 if ( DD_DEBUG_UPDATED_LINESTR && PERLDB_LINE && PL_curstash != PL_debstash) {
4 0 if ( DD_DEBUG_UPDATED_LINESTR && PERLDB_LINE && PL_curstash != PL_debstash) {
156 4 0 AV *fileav = CopFILEAV(&PL_compiling);
157 4 0 if (fileav) {
170 59 0 return (DD_HAVE_LEX_STUFF ? SvPVX(PL_lex_stuff) : "");
58 1 return (DD_HAVE_LEX_STUFF ? SvPVX(PL_lex_stuff) : "");
174 59 0 if (DD_HAVE_PARSER)
179 258 0 return HvNAME(PL_curstash);
258 0 return HvNAME(PL_curstash);
0 258 return HvNAME(PL_curstash);
0 0 return HvNAME(PL_curstash);
258 0 return HvNAME(PL_curstash);
0 258 return HvNAME(PL_curstash);
184 0 31 if (!DD_HAVE_PARSER) {
199 70 0 while (s < PL_bufend && isSPACE(*s)) s++;
0 70 while (s < PL_bufend && isSPACE(*s)) s++;
200 66 4 if (memEQ(s, PL_tokenbuf, strlen(PL_tokenbuf)))
231 0 60 if(SvPVX(PL_linestr) != old_pvx)
234 2 58 if (!s)
236 46 12 if (s <= base_s || memcmp(SvPVX(line_copy), SvPVX(PL_linestr), offset)) {
4 42 if (s <= base_s || memcmp(SvPVX(line_copy), SvPVX(PL_linestr), offset)) {
239 16 0 dd_set_linestr(aTHX_ SvPV_nolen(line_copy));
248 0 318 if(SvPVX(PL_linestr) != old_pvx)
257 0 80 if (DD_DEBUG_TRACE) {
268 0 80 PUSHMARK(SP);
272 0 80 FREETMPS;
275 0 80 if (DD_DEBUG_TRACE) {
309 12249 0 if (!DD_AM_LEXING)
0 12249 if (!DD_AM_LEXING)
0 0 if (!DD_AM_LEXING)
312 25 12224 if (in_declare) {
319 1495 10729 if (kid->op_type != OP_GV) /* not a GV so ignore */
322 64 10665 if (!isGV(kGVOP_gv)
323 64 0 && (!SvROK(kGVOP_gv) || SvTYPE(SvRV(kGVOP_gv)) != SVt_PVCV))
9 55 && (!SvROK(kGVOP_gv) || SvTYPE(SvRV(kGVOP_gv)) != SVt_PVCV))
326 10665 55 gvname = Gv_or_CvNAME(kGVOP_gv);
55 0 gvname = Gv_or_CvNAME(kGVOP_gv);
328 0 10720 if (DD_DEBUG_TRACE) {
329 0 0 printf("Checking GV %s -> %s\n", HvNAME(GvSTASH(kGVOP_gv)), gvname);
0 0 printf("Checking GV %s -> %s\n", HvNAME(GvSTASH(kGVOP_gv)), gvname);
0 0 printf("Checking GV %s -> %s\n", HvNAME(GvSTASH(kGVOP_gv)), gvname);
0 0 printf("Checking GV %s -> %s\n", HvNAME(GvSTASH(kGVOP_gv)), gvname);
0 0 printf("Checking GV %s -> %s\n", HvNAME(GvSTASH(kGVOP_gv)), gvname);
0 0 printf("Checking GV %s -> %s\n", HvNAME(GvSTASH(kGVOP_gv)), gvname);
334 10611 109 if (dd_flags == -1)
337 0 109 if (DD_DEBUG_TRACE) {
343 95 14 if (PL_expect != XOPERATOR) {
344 72 23 if (!dd_handle_const(aTHX_ Gv_or_CvNAME(kGVOP_gv)))
23 0 if (!dd_handle_const(aTHX_ Gv_or_CvNAME(kGVOP_gv)))
1 93 if (!dd_handle_const(aTHX_ Gv_or_CvNAME(kGVOP_gv)))
349 75 18 if (*skipspace(PL_bufptr + strlen(gvname)) != '(') {
350 55 20 if (in_declare) {
370 1110 15609 if (SvLEN(PL_linestr) < DD_PREFERRED_LINESTR_SIZE)
426 34 0 SvGROW(sv, DD_PREFERRED_LINESTR_SIZE);
12 22 SvGROW(sv, DD_PREFERRED_LINESTR_SIZE);
436 34 0 if (PL_rsfp_filters && AvFILLp(PL_rsfp_filters) >= 0 &&
34 0 if (PL_rsfp_filters && AvFILLp(PL_rsfp_filters) >= 0 &&
34 0 if (PL_rsfp_filters && AvFILLp(PL_rsfp_filters) >= 0 &&
437 34 0 (filter_datasv = FILTER_DATA(AvFILLp(PL_rsfp_filters))) &&
30 4 (filter_datasv = FILTER_DATA(AvFILLp(PL_rsfp_filters))) &&
445 0 95 switch (PL_lex_inwhat) {
458 0 95 if (strnEQ(PL_bufptr, "->", 2)) {
469 95 0 if (strnEQ(buf, name, len)) {
477 95 0 if ((PL_bufend - d) >= 2 && strnEQ(d, "=>", 2)) {
1 94 if ((PL_bufend - d) >= 2 && strnEQ(d, "=>", 2)) {
482 94 0 dd_set_linestr(aTHX_ SvPV_nolen(inject));
531 32 31 if (!initialized) {
626 58 2 RETVAL = len ? newSViv(len) : &PL_sv_undef;
660 1 31 if (debug_str) {
662 0 1 if (*endptr != '\0') {