Branch Coverage

Parameters.xs
Criterion Covered Total %
branch 660 1004 65.7


line true false branch
189 0 628 DEFVECTOR_INIT(spv_init, SpecParam);
196 201 628 DEFVECTOR_CLEAR(spv_clear, SpecParam, sp_clear);
198 0 201 DEFVECTOR_EXTEND(spv_extend, SpecParam);
0 0 DEFVECTOR_EXTEND(spv_extend, SpecParam);
236 6833 628 while (p) {
238 6833 0 if (cur->destroy) {
305 2158 14 p->needs_freed = o && !MY_OP_SLABBED(o);
0 2158 p->needs_freed = o && !MY_OP_SLABBED(o);
309 0 1956 if (p->needs_freed) {
329 3085 0 const char *sv_p = SvPV(sv, sv_len);
330 991 2094 return sv_len == n && memcmp(sv_p, p, n) == 0;
247 744 return sv_len == n && memcmp(sv_p, p, n) == 0;
347 28 11287 if (d - ds > 1) {
368 31 2036 if (lex_bufutf8()) {
375 13176 0 while (c != -1) {
376 2095 11081 if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) {
2093 2 if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) {
2093 0 if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) {
1587 506 if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) {
11075 6 if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) {
11075 0 if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) {
9488 1587 if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) {
11081 2095 if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) {
381 734 1361 } else if (allow_package && !at_substart && c == '\'') {
459 275 } else if (allow_package && !at_substart && c == '\'') {
0 459 } else if (allow_package && !at_substart && c == '\'') {
384 0 0 if (!MY_UNI_IDFIRST(c)) {
0 0 if (!MY_UNI_IDFIRST(c)) {
0 0 if (!MY_UNI_IDFIRST(c)) {
0 0 if (!MY_UNI_IDFIRST(c)) {
390 734 1361 } else if (allow_package && (at_start || !at_substart) && c == ':') {
459 275 } else if (allow_package && (at_start || !at_substart) && c == ':') {
459 0 } else if (allow_package && (at_start || !at_substart) && c == ':') {
30 704 } else if (allow_package && (at_start || !at_substart) && c == ':') {
392 0 30 if (lex_peek_unichar(0) != ':') {
398 30 0 if (!MY_UNI_IDFIRST(c)) {
30 0 if (!MY_UNI_IDFIRST(c)) {
2 28 if (!MY_UNI_IDFIRST(c)) {
2 28 if (!MY_UNI_IDFIRST(c)) {
410 1563 504 return SvCUR(sv) ? sv : NULL;
421 0 68 if (lex_bufutf8()) {
428 0 242 if (c == EOF) {
433 26 216 if (c == '\\') {
435 0 26 if (c == EOF) {
439 0 26 if (keep_backslash || (c != '(' && c != ')')) {
0 0 if (keep_backslash || (c != '(' && c != ')')) {
0 0 if (keep_backslash || (c != '(' && c != ')')) {
442 0 216 } else if (c == '(') {
444 68 148 } else if (c == ')') {
445 68 0 if (!nesting) {
462 67 0 start = SvPVbyte_force(proto, len);
465 199 67 for (w = r = start; r < end; r++) {
466 178 21 if (!isSPACE(*r)) {
475 22 45 if (!ckWARN(WARN_ILLEGALPROTO)) {
480 0 45 if (strspn(start, "$@%*;[]&\\_+") != len) {
482 0 0 Perl_warner(
501 58 23 for (r = start; r < end; r++) {
513 10 1 if (r[1] && !strchr(";@%", r[1])) {
6 4 if (r[1] && !strchr(";@%", r[1])) {
526 0 5 if (r[1]) {
539 2 10 if (strchr("$@%&*", *r)) {
542 4 6 if (*r == '[') {
544 4 0 for (; r < end && *r != ']'; r++) {
4 0 for (; r < end && *r != ']'; r++) {
545 4 0 if (!strchr("$@%&*", *r)) {
549 0 4 if (*r == ']' && r[-1] != '[') {
0 0 if (*r == ']' && r[-1] != '[') {
577 1 79 if (!(t = my_scan_word(aTHX_ sen, TRUE))) {
583 14 65 if (c == '[') {
595 8 13 } while (c == ',');
596 0 13 if (c != ']') {
614 4 82 while ((c = lex_peek_unichar(0)) == '~') {
622 2 80 if (c == '(') {
631 0 2 if (c != ')') {
652 2 78 while ((c = lex_peek_unichar(0)) == '/') {
672 4 74 while ((c = lex_peek_unichar(0)) == '&') {
692 11 63 while ((c = lex_peek_unichar(0)) == '|') {
714 73 4 if ((flags & G_WANT) == 0) {
722 0 77 PUSHMARK(SP);
723 12 65 if (!args) {
727 65 0 EXTEND(SP, (SSize_t)nargs);
0 65 EXTEND(SP, (SSize_t)nargs);
728 74 65 for (i = 0; i < nargs; i++) {
741 4 70 if (want == G_VOID) {
750 73 1 FREETMPS;
761 0 42 if (!sv_isobject(t)) {
799 0 1226 DEFVECTOR_INIT(pv_init, Param);
800 0 1226 DEFVECTOR_INIT(piv_init, ParamInit);
818 7 692 DEFVECTOR_EXTEND(pv_extend, Param);
0 7 DEFVECTOR_EXTEND(pv_extend, Param);
819 0 135 DEFVECTOR_EXTEND(piv_extend, ParamInit);
0 0 DEFVECTOR_EXTEND(piv_extend, ParamInit);
832 0 155 if (ps->used + n > ps->size) {
834 0 0 Renew(ps->data, n2, Param);
837 0 155 Move(ps->data, ps->data + n, ps->used, Param);
838 161 155 for (i = 0; i < n; i++) {
856 860 1226 DEFVECTOR_CLEAR(pv_clear, Param, p_clear);
857 135 1226 DEFVECTOR_CLEAR_THX(piv_clear, ParamInit, pi_clear);
872 45625 979 for (i = 0, lim = ps->positional_required.used; i < lim; i++) {
873 2 45623 if (sv_eq(sv, ps->positional_required.data[i].name)) {
878 70 979 for (i = 0, lim = ps->positional_optional.used; i < lim; i++) {
879 0 70 if (sv_eq(sv, ps->positional_optional.data[i].param.name)) {
884 104 978 for (i = 0, lim = ps->named_required.used; i < lim; i++) {
885 1 103 if (sv_eq(sv, ps->named_required.data[i].name)) {
890 18 978 for (i = 0, lim = ps->named_optional.used; i < lim; i++) {
891 0 18 if (sv_eq(sv, ps->named_optional.data[i].param.name)) {
909 514 21 if (ps->named_required.used || ps->named_optional.used || ps->slurpy.name) {
505 9 if (ps->named_required.used || ps->named_optional.used || ps->slurpy.name) {
31 474 if (ps->named_required.used || ps->named_optional.used || ps->slurpy.name) {
978 6 45 if ((can_has_coercion = gv_fetchmethod_autoload(SvSTASH(SvRV(type)), "has_coercion", TRUE))) {
980 6 0 if (SvTRUE(ret)) {
0 6 if (SvTRUE(ret)) {
0 6 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 6 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
6 0 if (SvTRUE(ret)) {
6 0 if (SvTRUE(ret)) {
3 3 if (SvTRUE(ret)) {
0 3 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
3 3 if (SvTRUE(ret)) {
988 5 46 if ((can_can_be_inlined = gv_fetchmethod_autoload(SvSTASH(SvRV(type)), "can_be_inlined", TRUE))) {
990 5 0 if (SvTRUE(ret)) {
0 5 if (SvTRUE(ret)) {
0 5 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 5 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
5 0 if (SvTRUE(ret)) {
5 0 if (SvTRUE(ret)) {
0 5 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
0 0 if (SvTRUE(ret)) {
5 0 if (SvTRUE(ret)) {
996 5 46 if (can_be_inlined) {
1001 0 5 if (!can_inline_check) {
1003 0 0 if (!can_inline_check) {
1013 0 5 : name;
1020 5 0 SV *virt_file = sentinel_mortalize(sen, Perl_newSVpvf(aTHX_ "(inline_check:%s:%lu)", CopFILE(PL_curcop), (unsigned long)CopLINE(PL_curcop)));
1026 5 0 char *ptr = SvPV_nolen(virt_file);
1033 1 4 if (PL_parser->error_count) {
1038 1 4 FREETMPS;
1041 1 4 if (!chk) {
1042 0 1 SV *e = sentinel_mortalize(sen, Perl_newSVpvf(
1051 1 0 PL_errors && SvCUR(PL_errors)
1053 1 0 : ERRSV;
1 0 : ERRSV;
1054 1 0 if (SvTRUE(errsv)) {
0 1 if (SvTRUE(errsv)) {
0 1 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
1 0 if (SvTRUE(errsv)) {
1 0 if (SvTRUE(errsv)) {
0 1 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
0 0 if (SvTRUE(errsv)) {
1 0 if (SvTRUE(errsv)) {
1058 1 0 ptr = SvPV_force(e, len);
1059 1 0 if (len >= 2 && ptr[len - 1] == '\n' && ptr[len - 2] == '.') {
1 0 if (len >= 2 && ptr[len - 1] == '\n' && ptr[len - 2] == '.') {
1 0 if (len >= 2 && ptr[len - 1] == '\n' && ptr[len - 2] == '.') {
1068 0 4 if (has_coercion) {
1072 0 0 args2 = op_append_elem(OP_LIST, args2, padoff == NOT_IN_PAD ? newDEFSVOP() : my_var(aTHX_ 0, padoff));
1079 0 0 coerce = newASSIGNOP(
1093 1 45 : my_var(aTHX_ 0, padoff);
1095 3 43 if (has_coercion) {
1106 0 3 arg = newASSIGNOP(
1123 3 47 err = mkconstsv(
1127 2 45 : Perl_newSVpvf(aTHX_ "In %"SVf": %s %lu (%"SVf"): ", SVfARG(declarator), is_invocant ? "invocant" : "parameter", (unsigned long)nr, SVfARG(name))
1134 1 49 args = op_append_elem(
1201 902 0 if (spec->flags & FLAG_TYPES_OK) {
1202 12 890 if (c == '(') {
1213 0 12 if (!(expr = parse_fullexpr(PARSE_OPTIONAL))) {
1216 12 0 if (MY_OP_SLABBED(expr)) {
1224 0 12 if (c != ')') {
1230 12 0 SvREFCNT_inc_simple_void(PL_compcv);
1231 0 12 if (expr_sentinel) {
1235 5 7 if (!SvROK(*ptype)) {
1237 0 7 } else if (!sv_isobject(*ptype)) {
1242 890 0 } else if (MY_UNI_IDFIRST(c) || c == '~') {
890 0 } else if (MY_UNI_IDFIRST(c) || c == '~') {
41 849 } else if (MY_UNI_IDFIRST(c) || c == '~') {
849 41 } else if (MY_UNI_IDFIRST(c) || c == '~') {
0 0 } else if (MY_UNI_IDFIRST(c) || c == '~') {
0 849 } else if (MY_UNI_IDFIRST(c) || c == '~') {
1250 85 813 if (c == ':') {
1259 0 898 if (c == -1) {
1263 49 849 if (!(c == '$' || c == '@' || c == '%')) {
6 43 if (!(c == '$' || c == '@' || c == '%')) {
0 6 if (!(c == '$' || c == '@' || c == '%')) {
1272 0 898 if (c == '#') {
1278 17 881 if (!(name = my_scan_word(aTHX_ sen, FALSE))) {
1280 0 881 } else if (sv_eq_pvs(name, "_")) {
1290 17 881 if (c == '/') {
1293 0 17 if (c != '/') {
1294 0 0 Perl_croak(aTHX_ "In %"SVf": unexpected '%s' after '%"SVf"' (expecting '//=' or '=')", SVfARG(declarator), c == '=' ? "/=" : "/", SVfARG(name));
1299 0 17 if (c != '=') {
1307 141 757 if (c == '=') {
1312 139 2 if (c == ',' || c == ')') {
4 135 if (c == ',' || c == ')') {
1313 0 6 if (is_defined_or) {
1318 117 18 if (param_spec->shift == 0 && spec->shift.used) {
11 106 if (param_spec->shift == 0 && spec->shift.used) {
1321 12 11 for (i = 0; i < lim; i++) {
1337 36 862 if (c == ':') {
1341 557 305 } else if (c == ',') {
1344 0 305 } else if (c != ')') {
1345 0 0 if (c == -1) {
1353 881 17 : pad_add_name_sv(*pname, padadd_NO_DUP_CHECK, NULL, NULL)
1363 0 556 PUSHMARK(SP);
1364 0 556 EXTEND(SP, 9);
1371 556 0 char *p = SvPV(declarator, n);
1373 556 0 SV *tmp = newSVpvn_utf8(p, q ? (size_t)(q - p) : n, SvUTF8(declarator));
1386 340 216 if (lim) {
1388 782 340 for (i = 0; i < lim; i++) {
1391 49 733 av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef);
1404 72 484 if (lim) {
1406 111 72 for (i = 0; i < lim; i++) {
1409 0 111 av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef);
1422 22 534 if (lim) {
1424 56 22 for (i = 0; i < lim; i++) {
1427 0 56 av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef);
1440 12 544 if (lim) {
1442 23 12 for (i = 0; i < lim; i++) {
1445 0 23 av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef);
1452 36 520 if (ps->slurpy.name) {
1454 1 35 if (ps->slurpy.type) {
1468 556 0 FREETMPS;
1486 22 606 if (lex_bufutf8()) {
1496 626 2 if ((spec->flags & FLAG_NAME_OK) && (saw_name = my_scan_word(aTHX_ sen, TRUE))) {
356 270 if ((spec->flags & FLAG_NAME_OK) && (saw_name = my_scan_word(aTHX_ sen, TRUE))) {
1498 2 354 if (PL_parser->expect != XSTATE) {
1506 354 0 if (
1507 354 0 sv_eq_pvs(saw_name, "BEGIN") ||
1508 354 0 sv_eq_pvs(saw_name, "END") ||
1509 354 0 sv_eq_pvs(saw_name, "INIT") ||
1510 0 354 sv_eq_pvs(saw_name, "CHECK") ||
1517 3 269 } else if (!(spec->flags & FLAG_ANON_OK)) {
1524 354 269 floor_ix = start_subparse(FALSE, saw_name ? 0 : CVf_ANON);
1537 10 613 if (c != '(') {
1555 902 587 while ((c = lex_peek_unichar(0)) != ')') {
1563 881 17 if (padoff != NOT_IN_PAD) {
1567 898 0 sigil = SvPV_nolen(name)[0];
1570 85 813 if (flags & PARAM_NAMED) {
1571 0 85 if (padoff == NOT_IN_PAD) {
1574 1 84 if (flags & PARAM_INVOCANT) {
1577 0 84 if (sigil != '$') {
1578 0 0 Perl_croak(aTHX_ "In %"SVf": named parameter %"SVf" can't be a%s", SVfARG(declarator), SVfARG(name), sigil == '@' ? "n array" : " hash");
1580 35 778 } else if (flags & PARAM_INVOCANT) {
1581 0 35 if (init_sentinel->op) {
1584 2 33 if (sigil != '$') {
1585 1 1 Perl_croak(aTHX_ "In %"SVf": invocant %"SVf" can't be a%s", SVfARG(declarator), SVfARG(name), sigil == '@' ? "n array" : " hash");
1587 47 731 } else if (sigil != '$' && init_sentinel->op) {
4 43 } else if (sigil != '$' && init_sentinel->op) {
1588 2 2 Perl_croak(aTHX_ "In %"SVf": %s %"SVf" can't have a default value", SVfARG(declarator), sigil == '@' ? "array" : "hash", SVfARG(name));
1590 49 842 if (type && padoff == NOT_IN_PAD) {
0 49 if (type && padoff == NOT_IN_PAD) {
1595 5 886 if (param_spec->slurpy.name) {
1598 42 844 if (sigil != '$') {
1606 761 83 if (!(flags & PARAM_NAMED) && count_named_params(param_spec)) {
1 760 if (!(flags & PARAM_NAMED) && count_named_params(param_spec)) {
1607 1 0 Perl_croak(aTHX_ "In %"SVf": positional parameter %"SVf" can't appear after named parameter %"SVf"", SVfARG(declarator), SVfARG(name), SVfARG((param_spec->named_required.used ? param_spec->named_required.data[0] : param_spec->named_optional.data[0].param).name));
1610 33 810 if (flags & PARAM_INVOCANT) {
1611 0 33 if (param_spec->shift) {
1615 2 31 if (!(spec->flags & FLAG_INVOCANT)) {
1618 30 1 if (spec->shift.used && spec->shift.used != param_spec->positional_required.used + 1) {
3 27 if (spec->shift.used && spec->shift.used != param_spec->positional_required.used + 1) {
1623 755 83 if (!(flags & PARAM_NAMED) && !init_sentinel->op && param_spec->positional_optional.used) {
641 114 if (!(flags & PARAM_NAMED) && !init_sentinel->op && param_spec->positional_optional.used) {
0 641 if (!(flags & PARAM_NAMED) && !init_sentinel->op && param_spec->positional_optional.used) {
1627 137 701 if (init_sentinel->op && !(spec->flags & FLAG_DEFAULT_ARGS)) {
2 135 if (init_sentinel->op && !(spec->flags & FLAG_DEFAULT_ARGS)) {
1631 833 3 if (padoff != NOT_IN_PAD && ps_contains(aTHX_ param_spec, name)) {
1 832 if (padoff != NOT_IN_PAD && ps_contains(aTHX_ param_spec, name)) {
1635 82 753 if (flags & PARAM_NAMED) {
1636 0 82 if (!(spec->flags & FLAG_NAMED_PARAMS)) {
1640 23 59 if (init_sentinel->op) {
1649 1 58 if (param_spec->positional_optional.used) {
1656 112 641 if (init_sentinel->op) {
1667 28 613 if (flags & PARAM_INVOCANT) {
1678 548 39 if (param_spec->shift == 0 && spec->shift.used) {
144 404 if (param_spec->shift == 0 && spec->shift.used) {
1682 148 142 for (i = 0; i < lim; i++) {
1684 2 146 if (ps_contains(aTHX_ param_spec, cur->name)) {
1703 517 68 if (c == ':' || c == '{') /* '}' - hi, vim */ {
517 0 if (c == ':' || c == '{') /* '}' - hi, vim */ {
1706 585 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 585 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 585 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
585 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
585 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
408 177 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 408 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
0 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
177 408 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
177 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
177 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
1711 239 346 if (c == ':') {
1719 216 247 if (!(attr = my_scan_word(aTHX_ sen, FALSE))) {
1726 179 68 if (c != '(') {
1727 3 176 if (sv_eq_pvs(attr, "lvalue")) {
1730 176 0 } else if (sv_eq_pvs(attr, "method")) {
1737 0 68 if (!(sv = my_scan_parens_tail(aTHX_ sen, TRUE))) {
1741 68 0 if (sv_eq_pvs(attr, "prototype")) {
1742 1 67 if (proto) {
1758 0 224 if (attr) {
1762 9 215 if (c == ':') {
1772 1 561 if (c != '{') /* '}' - hi, vim */ {
1777 343 218 if (saw_name && !spec->install_sub && !(spec->flags & FLAG_RUNTIME)) {
332 11 if (saw_name && !spec->install_sub && !(spec->flags & FLAG_RUNTIME)) {
318 14 if (saw_name && !spec->install_sub && !(spec->flags & FLAG_RUNTIME)) {
1783 318 0 SvREFCNT_inc_simple_void(PL_compcv);
1796 15 303 newATTRSUB(
1805 3 558 if (builtin_attrs & MY_ATTR_LVALUE) {
1808 176 385 if (builtin_attrs & MY_ATTR_METHOD) {
1811 0 561 if (builtin_attrs & MY_ATTR_SPECIAL) {
1816 535 26 if (spec->flags & FLAG_CHECK_NARGS) {
1820 335 200 if (amin > 0) {
1846 474 61 if (amax >= 0) {
1873 505 30 if (count_named_params(param_spec) || (param_spec->slurpy.name && SvPV_nolen(param_spec->slurpy.name)[0] == '%')) {
31 474 if (count_named_params(param_spec) || (param_spec->slurpy.name && SvPV_nolen(param_spec->slurpy.name)[0] == '%')) {
31 0 if (count_named_params(param_spec) || (param_spec->slurpy.name && SvPV_nolen(param_spec->slurpy.name)[0] == '%')) {
0 31 if (count_named_params(param_spec) || (param_spec->slurpy.name && SvPV_nolen(param_spec->slurpy.name)[0] == '%')) {
1884 17 13 cond = newLOGOP(OP_AND, 0,
1900 181 380 if (param_spec->shift) {
1904 181 0 for (i = 0; i < param_spec->shift; i++) {
1905 181 0 if (param_spec->positional_required.data[i].padoff != NOT_IN_PAD) {
1911 174 7 if (param_spec->shift == 1) {
1912 0 174 if (all_anon) {
1938 0 7 if (all_anon) {
1953 14 7 for (i = 0, lim = param_spec->shift; i < lim; i++) {
1955 0 14 lhs = op_append_elem(
1988 600 561 for (i = param_spec->shift, lim = param_spec->positional_required.used; i < lim; i++) {
1990 1 599 lhs = op_append_elem(
2003 111 561 for (i = 0, lim = param_spec->positional_optional.used; i < lim; i++) {
2005 2 109 lhs = op_append_elem(
2040 37 524 slurpy_hash = param_spec->slurpy.name && SvPV_nolen(param_spec->slurpy.name)[0] == '%';
37 0 slurpy_hash = param_spec->slurpy.name && SvPV_nolen(param_spec->slurpy.name)[0] == '%';
2 35 slurpy_hash = param_spec->slurpy.name && SvPV_nolen(param_spec->slurpy.name)[0] == '%';
2041 530 31 if (!count_named_params(param_spec)) {
2042 31 499 if (param_spec->slurpy.name && param_spec->slurpy.padoff != NOT_IN_PAD) {
17 14 if (param_spec->slurpy.name && param_spec->slurpy.padoff != NOT_IN_PAD) {
2044 0 17 type = slurpy_hash ? OP_PADHV : OP_PADAV;
2049 2 29 } else if (slurpy_hash && param_spec->slurpy.padoff != NOT_IN_PAD) {
2 0 } else if (slurpy_hash && param_spec->slurpy.padoff != NOT_IN_PAD) {
2057 48 513 if (padoff != NOT_IN_PAD) {
2067 31 17 if (type == OP_PADHV) {
2073 288 273 if (lhs) {
2096 111 561 for (i = 0, lim = param_spec->positional_optional.used; i < lim; i++) {
2102 18 93 if (init_op->op_type == OP_UNDEF && !(init_op->op_flags & OPf_KIDS)) {
18 0 if (init_op->op_type == OP_UNDEF && !(init_op->op_flags & OPf_KIDS)) {
2111 1 11 if (cur->param.padoff == NOT_IN_PAD) {
2135 80 1 if (cur->param.padoff != NOT_IN_PAD) {
2155 31 530 if (count_named_params(param_spec)) {
2160 56 31 for (i = 0, lim = param_spec->named_required.used; i < lim; i++) {
2163 56 0 char *p = SvPV(cur->name, n);
2170 55 1 if (spec->flags & FLAG_CHECK_NARGS) {
2194 23 31 for (i = 0, lim = param_spec->named_optional.used; i < lim; i++) {
2197 23 0 char *p = SvPV(cur->param.name, n);
2205 4 19 if (!(init->op_type == OP_UNDEF && !(init->op_flags & OPf_KIDS))) {
0 4 if (!(init->op_type == OP_UNDEF && !(init->op_flags & OPf_KIDS))) {
2234 25 6 if (!param_spec->slurpy.name) {
2235 24 1 if (spec->flags & FLAG_CHECK_NARGS) {
2266 4 2 } else if (param_spec->slurpy.padoff != param_spec->rest_hash) {
2270 4 0 if (SvPV_nolen(param_spec->slurpy.name)[0] == '%') {
4 0 if (SvPV_nolen(param_spec->slurpy.name)[0] == '%') {
2276 4 0 if (param_spec->slurpy.padoff != NOT_IN_PAD) {
2301 561 0 if (spec->flags & FLAG_CHECK_TARGS) {
2305 788 560 for (i = 0, lim = param_spec->positional_required.used; i < lim; i++) {
2308 50 738 if (cur->type) {
2312 45 5 op_guard_update(prelude_sentinel, op_append_list(OP_LINESEQ, prelude_sentinel->op, newSTATEOP(0, NULL, mktypecheckpv(aTHX_ sen, declarator, base + i - (is_invocant ? 0 : shift), cur, !is_invocant ? 0 : shift == 1 ? -1 : 1))));
3 2 op_guard_update(prelude_sentinel, op_append_list(OP_LINESEQ, prelude_sentinel->op, newSTATEOP(0, NULL, mktypecheckpv(aTHX_ sen, declarator, base + i - (is_invocant ? 0 : shift), cur, !is_invocant ? 0 : shift == 1 ? -1 : 1))));
45 5 op_guard_update(prelude_sentinel, op_append_list(OP_LINESEQ, prelude_sentinel->op, newSTATEOP(0, NULL, mktypecheckpv(aTHX_ sen, declarator, base + i - (is_invocant ? 0 : shift), cur, !is_invocant ? 0 : shift == 1 ? -1 : 1))));
2317 111 560 for (i = 0, lim = param_spec->positional_optional.used; i < lim; i++) {
2320 0 111 if (cur->type) {
2327 56 560 for (i = 0, lim = param_spec->named_required.used; i < lim; i++) {
2330 0 56 if (cur->type) {
2337 23 560 for (i = 0, lim = param_spec->named_optional.used; i < lim; i++) {
2340 0 23 if (cur->type) {
2347 1 559 if (param_spec->slurpy.type) {
2355 1 0 if (SvPV_nolen(param_spec->slurpy.name)[0] == '@') {
1 0 if (SvPV_nolen(param_spec->slurpy.name)[0] == '@') {
2374 546 14 if (prelude_sentinel->op) {
2386 560 0 SvREFCNT_inc_simple_void(PL_compcv);
2391 44 516 cv = newATTRSUB(
343 217 cv = newATTRSUB(
322 21 cv = newATTRSUB(
318 4 cv = newATTRSUB(
2401 556 4 if (cv) {
2406 343 217 if (saw_name) {
2407 322 21 if (!runtime) {
2408 4 318 if (spec->install_sub) {
2416 7 14 *pop = newUNOP(
2448 74009 0 if (PL_parser && PL_parser->error_count) {
3 74006 if (PL_parser && PL_parser->error_count) {
2453 0 74006 if (kw_len > (STRLEN)I32_MAX) {
2457 0 74006 if (!(hints = GvHV(PL_hintgv))) {
2465 69695 4311 if (!(psv = hv_fetchs(hints, HINTK_CONFIG, 0))) {
2469 2 4309 if (!SvROK(sv)) {
2473 0 2 PUSHMARK(SP);
2482 0 4309 if (SvTYPE(sv2) != SVt_PVHV) {
2485 142 4167 if (lex_bufutf8()) {
2488 3681 628 if (!(psv = hv_fetch((HV *)sv2, kw_ptr, kw_xlen, 0))) {
2492 628 0 if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVHV))) {
0 628 if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVHV))) {
2524 0 628 FETCH_HINTSK_INTO(FLAGS, &sv);
2525 628 0 (*ppspec)->flags = SvIV(sv);
2527 0 628 FETCH_HINTSK_INTO(REIFY, &sv);
2528 628 0 if (!sv || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVCV) {
628 0 if (!sv || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVCV) {
0 628 if (!sv || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVCV) {
2533 0 628 FETCH_HINTSK_INTO(SHIFT, &sv);
2536 509 119 const char *const sv_p = SvPVutf8(sv, sv_len);
2542 201 628 while (p < sv_p_end) {
2544 0 201 if (*p != '$') {
2548 201 0 if (p >= sv_p_end || !MY_UNI_IDFIRST_utf8(p, sv_p_end)) {
201 0 if (p >= sv_p_end || !MY_UNI_IDFIRST_utf8(p, sv_p_end)) {
0 201 if (p >= sv_p_end || !MY_UNI_IDFIRST_utf8(p, sv_p_end)) {
0 0 if (p >= sv_p_end || !MY_UNI_IDFIRST_utf8(p, sv_p_end)) {
0 0 if (p >= sv_p_end || !MY_UNI_IDFIRST_utf8(p, sv_p_end)) {
0 0 if (p >= sv_p_end || !MY_UNI_IDFIRST_utf8(p, sv_p_end)) {
0 0 if (p >= sv_p_end || !MY_UNI_IDFIRST_utf8(p, sv_p_end)) {
0 0 if (p >= sv_p_end || !MY_UNI_IDFIRST_utf8(p, sv_p_end)) {
2552 832 0 while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) {
832 0 while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) {
631 201 while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) {
0 0 while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) {
0 0 while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) {
0 0 while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) {
0 0 while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) {
0 0 while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) {
2556 0 201 if (v_end == v_start + 2 && v_start[1] == '_') {
0 0 if (v_end == v_start + 2 && v_start[1] == '_') {
2561 11 201 for (i = 0; i < lim; i++) {
2562 0 11 if (my_sv_eq_pvn(aTHX_ (*ppspec)->shift.data[i].name, v_start, v_end - v_start)) {
2567 201 0 if (p < sv_p_end && *p == '/') {
2 199 if (p < sv_p_end && *p == '/') {
2571 4 0 while (p < sv_p_end && isDIGIT(*p)) {
2 2 while (p < sv_p_end && isDIGIT(*p)) {
2576 2 0 if (!shift_types) {
2578 0 2 FETCH_HINTSK_INTO(SHIF2, &sv);
2579 2 0 if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVAV))) {
0 2 if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVAV))) {
2584 2 0 if (tix < 0 || tix > av_len(shift_types)) {
0 2 if (tix < 0 || tix > av_len(shift_types)) {
2588 0 2 if (!ptype) {
2592 0 2 if (!sv_isobject(type)) {
2598 201 0 if (p < sv_p_end) {
2599 0 201 if (*p != ' ') {
2607 0 628 FETCH_HINTSK_INTO(ATTRS, &sv);
2608 628 0 SvSetSV((*ppspec)->attrs, sv);
2610 0 628 FETCH_HINTSK_INTO(INSTL, &sv);
2611 628 0 if (SvTRUE(sv)) {
0 628 if (SvTRUE(sv)) {
0 628 if (SvTRUE(sv)) {
0 0 if (SvTRUE(sv)) {
0 0 if (SvTRUE(sv)) {
626 2 if (SvTRUE(sv)) {
626 0 if (SvTRUE(sv)) {
616 10 if (SvTRUE(sv)) {
0 616 if (SvTRUE(sv)) {
0 0 if (SvTRUE(sv)) {
0 2 if (SvTRUE(sv)) {
0 0 if (SvTRUE(sv)) {
0 0 if (SvTRUE(sv)) {
0 0 if (SvTRUE(sv)) {
0 0 if (SvTRUE(sv)) {
12 616 if (SvTRUE(sv)) {
2628 628 73381 if (kw_flags_enter(aTHX_ &psen, keyword_ptr, keyword_len, &pspec)) {
2631 88 472 FREETMPS;
2646 0 49 if (*old_plugin_p) {
2650 49 0 if (!*old_plugin_p) {
2712 18 0 RETVAL = PTR2UV(xcv ? CvROOT(xcv) : NULL);
2727 1 11 if (xcv) {
2728 1 0 if (!GvCVGEN(gv) && (CvROOT(xcv) || CvXSUB(xcv)) && ckWARN(WARN_REDEFINE)) {
0 1 if (!GvCVGEN(gv) && (CvROOT(xcv) || CvXSUB(xcv)) && ckWARN(WARN_REDEFINE)) {
0 0 if (!GvCVGEN(gv) && (CvROOT(xcv) || CvXSUB(xcv)) && ckWARN(WARN_REDEFINE)) {
0 1 if (!GvCVGEN(gv) && (CvROOT(xcv) || CvXSUB(xcv)) && ckWARN(WARN_REDEFINE)) {
2735 12 0 if (GvSTASH(gv)) {
2736 1 11 gv_method_changed(gv);