Branch Coverage

Parameters.xs
Criterion Covered Total %
branch 595 826 72.0


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 7393 628 while (p) {
238 7393 0 if (cur->destroy) {
322 2158 14 p->needs_freed = o && !MY_OP_SLABBED(o);
0 2158 p->needs_freed = o && !MY_OP_SLABBED(o);
326 0 1956 if (p->needs_freed) {
347 991 2094 return sv_len == n && memcmp(sv_p, p, n) == 0;
247 744 return sv_len == n && memcmp(sv_p, p, n) == 0;
364 28 11287 if (d - ds > 1) {
385 31 2036 if (lex_bufutf8()) {
392 13176 0 while (c != -1) {
393 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)) {
398 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 == '\'') {
401 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)) {
407 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 == ':') {
409 0 30 if (lex_peek_unichar(0) != ':') {
415 30 0 if (!MY_UNI_IDFIRST(c)) {
30 0 if (!MY_UNI_IDFIRST(c)) {
28 2 if (!MY_UNI_IDFIRST(c)) {
2 28 if (!MY_UNI_IDFIRST(c)) {
427 1563 504 return SvCUR(sv) ? sv : NULL;
438 0 68 if (lex_bufutf8()) {
445 0 242 if (c == EOF) {
450 26 216 if (c == '\\') {
452 0 26 if (c == EOF) {
456 0 26 if (keep_backslash || (c != '(' && c != ')')) {
0 0 if (keep_backslash || (c != '(' && c != ')')) {
0 0 if (keep_backslash || (c != '(' && c != ')')) {
459 0 216 } else if (c == '(') {
461 68 148 } else if (c == ')') {
462 68 0 if (!nesting) {
482 199 67 for (w = r = start; r < end; r++) {
483 178 21 if (!isSPACE(*r)) {
492 22 45 if (!ckWARN(WARN_ILLEGALPROTO)) {
497 0 45 if (strspn(start, "$@%*;[]&\\_+") != len) {
504 0 0 SvUTF8(proto)
518 58 23 for (r = start; r < end; r++) {
530 10 1 if (r[1] && !strchr(";@%", r[1])) {
6 4 if (r[1] && !strchr(";@%", r[1])) {
543 0 5 if (r[1]) {
556 2 10 if (strchr("$@%&*", *r)) {
559 4 6 if (*r == '[') {
561 4 0 for (; r < end && *r != ']'; r++) {
4 0 for (; r < end && *r != ']'; r++) {
562 4 0 if (!strchr("$@%&*", *r)) {
566 0 4 if (*r == ']' && r[-1] != '[') {
0 0 if (*r == ']' && r[-1] != '[') {
594 1 79 if (!(t = my_scan_word(aTHX_ sen, TRUE))) {
600 14 65 if (c == '[') {
612 8 13 } while (c == ',');
613 0 13 if (c != ']') {
631 4 82 while ((c = lex_peek_unichar(0)) == '~') {
639 2 80 if (c == '(') {
648 0 2 if (c != ')') {
669 2 78 while ((c = lex_peek_unichar(0)) == '/') {
689 4 74 while ((c = lex_peek_unichar(0)) == '&') {
709 11 63 while ((c = lex_peek_unichar(0)) == '|') {
731 73 4 if ((flags & G_WANT) == 0) {
739 0 77 PUSHMARK(SP);
740 12 65 if (!args) {
744 65 0 EXTEND(SP, (SSize_t)nargs);
0 65 EXTEND(SP, (SSize_t)nargs);
745 74 65 for (i = 0; i < nargs; i++) {
758 4 70 if (want == G_VOID) {
767 73 1 FREETMPS;
778 0 42 if (!sv_isobject(t)) {
816 0 1226 DEFVECTOR_INIT(pv_init, Param);
817 0 1226 DEFVECTOR_INIT(piv_init, ParamInit);
835 7 692 DEFVECTOR_EXTEND(pv_extend, Param);
0 7 DEFVECTOR_EXTEND(pv_extend, Param);
836 0 135 DEFVECTOR_EXTEND(piv_extend, ParamInit);
0 0 DEFVECTOR_EXTEND(piv_extend, ParamInit);
849 0 155 if (ps->used + n > ps->size) {
851 0 0 Renew(ps->data, n2, Param);
854 0 155 Move(ps->data, ps->data + n, ps->used, Param);
855 161 155 for (i = 0; i < n; i++) {
873 860 1226 DEFVECTOR_CLEAR(pv_clear, Param, p_clear);
874 135 1226 DEFVECTOR_CLEAR_THX(piv_clear, ParamInit, pi_clear);
889 45625 979 for (i = 0, lim = ps->positional_required.used; i < lim; i++) {
890 2 45623 if (sv_eq(sv, ps->positional_required.data[i].name)) {
895 70 979 for (i = 0, lim = ps->positional_optional.used; i < lim; i++) {
896 0 70 if (sv_eq(sv, ps->positional_optional.data[i].param.name)) {
901 104 978 for (i = 0, lim = ps->named_required.used; i < lim; i++) {
902 1 103 if (sv_eq(sv, ps->named_required.data[i].name)) {
907 18 978 for (i = 0, lim = ps->named_optional.used; i < lim; i++) {
908 0 18 if (sv_eq(sv, ps->named_optional.data[i].param.name)) {
926 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) {
995 6 45 if ((can_has_coercion = gv_fetchmethod_autoload(SvSTASH(SvRV(type)), "has_coercion", TRUE))) {
997 3 3 if (SvTRUE(ret)) {
1005 5 46 if ((can_can_be_inlined = gv_fetchmethod_autoload(SvSTASH(SvRV(type)), "can_be_inlined", TRUE))) {
1007 5 0 if (SvTRUE(ret)) {
1013 5 46 if (can_be_inlined) {
1018 0 5 if (!can_inline_check) {
1020 0 0 if (!can_inline_check) {
1030 0 5 : name;
1037 5 0 SV *virt_file = sentinel_mortalize(sen, Perl_newSVpvf(aTHX_ "(inline_check:%s:%lu)", CopFILE(PL_curcop), (unsigned long)CopLINE(PL_curcop)));
1050 0 4 if (PL_parser->error_count) {
1055 0 4 FREETMPS;
1058 0 4 if (!chk) {
1059 0 0 SV *e = sentinel_mortalize(sen, Perl_newSVpvf(
1068 0 0 PL_errors && SvCUR(PL_errors)
1070 0 0 : ERRSV;
0 0 : ERRSV;
1071 0 0 if (SvTRUE(errsv)) {
1076 0 0 if (len >= 2 && ptr[len - 1] == '\n' && ptr[len - 2] == '.') {
0 0 if (len >= 2 && ptr[len - 1] == '\n' && ptr[len - 2] == '.') {
0 0 if (len >= 2 && ptr[len - 1] == '\n' && ptr[len - 2] == '.') {
1085 0 4 if (has_coercion) {
1089 0 0 args2 = op_append_elem(OP_LIST, args2, padoff == NOT_IN_PAD ? newDEFSVOP() : my_var(aTHX_ 0, padoff));
1096 0 0 coerce = newASSIGNOP(
1110 1 45 : my_var(aTHX_ 0, padoff);
1112 3 43 if (has_coercion) {
1123 0 3 arg = newASSIGNOP(
1140 3 47 err = mkconstsv(
1144 2 45 : Perl_newSVpvf(aTHX_ "In %"SVf": %s %lu (%"SVf"): ", SVfARG(declarator), is_invocant ? "invocant" : "parameter", (unsigned long)nr, SVfARG(name))
1151 1 49 args = op_append_elem(
1218 902 0 if (spec->flags & FLAG_TYPES_OK) {
1219 12 890 if (c == '(') {
1230 0 12 if (!(expr = parse_fullexpr(PARSE_OPTIONAL))) {
1233 12 0 if (MY_OP_SLABBED(expr)) {
1241 0 12 if (c != ')') {
1247 12 0 SvREFCNT_inc_simple_void(PL_compcv);
1248 0 12 if (expr_sentinel) {
1252 5 7 if (!SvROK(*ptype)) {
1254 0 7 } else if (!sv_isobject(*ptype)) {
1259 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 == '~') {
1267 85 813 if (c == ':') {
1276 0 898 if (c == -1) {
1280 49 849 if (!(c == '$' || c == '@' || c == '%')) {
6 43 if (!(c == '$' || c == '@' || c == '%')) {
0 6 if (!(c == '$' || c == '@' || c == '%')) {
1289 0 898 if (c == '#') {
1295 17 881 if (!(name = my_scan_word(aTHX_ sen, FALSE))) {
1297 0 881 } else if (sv_eq_pvs(name, "_")) {
1307 17 881 if (c == '/') {
1310 0 17 if (c != '/') {
1311 0 0 Perl_croak(aTHX_ "In %"SVf": unexpected '%s' after '%"SVf"' (expecting '//=' or '=')", SVfARG(declarator), c == '=' ? "/=" : "/", SVfARG(name));
1316 0 17 if (c != '=') {
1324 141 757 if (c == '=') {
1329 139 2 if (c == ',' || c == ')') {
4 135 if (c == ',' || c == ')') {
1330 0 6 if (is_defined_or) {
1335 117 18 if (param_spec->shift == 0 && spec->shift.used) {
11 106 if (param_spec->shift == 0 && spec->shift.used) {
1338 12 11 for (i = 0; i < lim; i++) {
1354 36 862 if (c == ':') {
1358 557 305 } else if (c == ',') {
1361 0 305 } else if (c != ')') {
1362 0 0 if (c == -1) {
1370 881 17 : pad_add_name_sv(*pname, padadd_NO_DUP_CHECK, NULL, NULL)
1380 0 556 PUSHMARK(SP);
1381 0 556 EXTEND(SP, 9);
1390 556 0 SV *tmp = newSVpvn_utf8(p, q ? (size_t)(q - p) : n, SvUTF8(declarator));
1403 340 216 if (lim) {
1405 782 340 for (i = 0; i < lim; i++) {
1408 49 733 av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef);
1421 72 484 if (lim) {
1423 111 72 for (i = 0; i < lim; i++) {
1426 0 111 av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef);
1439 22 534 if (lim) {
1441 56 22 for (i = 0; i < lim; i++) {
1444 0 56 av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef);
1457 12 544 if (lim) {
1459 23 12 for (i = 0; i < lim; i++) {
1462 0 23 av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef);
1469 36 520 if (ps->slurpy.name) {
1471 1 35 if (ps->slurpy.type) {
1485 556 0 FREETMPS;
1503 22 606 if (lex_bufutf8()) {
1513 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))) {
1515 2 354 if (PL_parser->expect != XSTATE) {
1523 354 0 if (
1524 354 0 sv_eq_pvs(saw_name, "BEGIN") ||
1525 354 0 sv_eq_pvs(saw_name, "END") ||
1526 354 0 sv_eq_pvs(saw_name, "INIT") ||
1527 0 354 sv_eq_pvs(saw_name, "CHECK") ||
1534 3 269 } else if (!(spec->flags & FLAG_ANON_OK)) {
1541 354 269 floor_ix = start_subparse(FALSE, saw_name ? 0 : CVf_ANON);
1554 10 613 if (c != '(') {
1572 902 587 while ((c = lex_peek_unichar(0)) != ')') {
1580 881 17 if (padoff != NOT_IN_PAD) {
1587 85 813 if (flags & PARAM_NAMED) {
1588 0 85 if (padoff == NOT_IN_PAD) {
1591 1 84 if (flags & PARAM_INVOCANT) {
1594 0 84 if (sigil != '$') {
1595 0 0 Perl_croak(aTHX_ "In %"SVf": named parameter %"SVf" can't be a%s", SVfARG(declarator), SVfARG(name), sigil == '@' ? "n array" : " hash");
1597 35 778 } else if (flags & PARAM_INVOCANT) {
1598 0 35 if (init_sentinel->op) {
1601 2 33 if (sigil != '$') {
1602 1 1 Perl_croak(aTHX_ "In %"SVf": invocant %"SVf" can't be a%s", SVfARG(declarator), SVfARG(name), sigil == '@' ? "n array" : " hash");
1604 47 731 } else if (sigil != '$' && init_sentinel->op) {
4 43 } else if (sigil != '$' && init_sentinel->op) {
1605 2 2 Perl_croak(aTHX_ "In %"SVf": %s %"SVf" can't have a default value", SVfARG(declarator), sigil == '@' ? "array" : "hash", SVfARG(name));
1607 49 842 if (type && padoff == NOT_IN_PAD) {
0 49 if (type && padoff == NOT_IN_PAD) {
1612 5 886 if (param_spec->slurpy.name) {
1615 42 844 if (sigil != '$') {
1623 761 83 if (!(flags & PARAM_NAMED) && count_named_params(param_spec)) {
1 760 if (!(flags & PARAM_NAMED) && count_named_params(param_spec)) {
1624 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));
1627 33 810 if (flags & PARAM_INVOCANT) {
1628 0 33 if (param_spec->shift) {
1632 2 31 if (!(spec->flags & FLAG_INVOCANT)) {
1635 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) {
1640 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) {
1644 137 701 if (init_sentinel->op && !(spec->flags & FLAG_DEFAULT_ARGS)) {
2 135 if (init_sentinel->op && !(spec->flags & FLAG_DEFAULT_ARGS)) {
1648 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)) {
1652 82 753 if (flags & PARAM_NAMED) {
1653 0 82 if (!(spec->flags & FLAG_NAMED_PARAMS)) {
1657 23 59 if (init_sentinel->op) {
1666 1 58 if (param_spec->positional_optional.used) {
1673 112 641 if (init_sentinel->op) {
1684 28 613 if (flags & PARAM_INVOCANT) {
1695 548 39 if (param_spec->shift == 0 && spec->shift.used) {
144 404 if (param_spec->shift == 0 && spec->shift.used) {
1699 148 142 for (i = 0; i < lim; i++) {
1701 2 146 if (ps_contains(aTHX_ param_spec, cur->name)) {
1720 517 68 if (c == ':' || c == '{') /* '}' - hi, vim */ {
517 0 if (c == ':' || c == '{') /* '}' - hi, vim */ {
1723 177 408 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
177 0 if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') {
1728 239 346 if (c == ':') {
1736 216 247 if (!(attr = my_scan_word(aTHX_ sen, FALSE))) {
1743 179 68 if (c != '(') {
1744 3 176 if (sv_eq_pvs(attr, "lvalue")) {
1747 176 0 } else if (sv_eq_pvs(attr, "method")) {
1754 0 68 if (!(sv = my_scan_parens_tail(aTHX_ sen, TRUE))) {
1758 68 0 if (sv_eq_pvs(attr, "prototype")) {
1759 1 67 if (proto) {
1775 0 224 if (attr) {
1779 9 215 if (c == ':') {
1789 1 561 if (c != '{') /* '}' - hi, vim */ {
1799 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)) {
1805 318 0 SvREFCNT_inc_simple_void(PL_compcv);
1818 15 303 newATTRSUB(
1827 3 558 if (builtin_attrs & MY_ATTR_LVALUE) {
1830 176 385 if (builtin_attrs & MY_ATTR_METHOD) {
1833 0 561 if (builtin_attrs & MY_ATTR_SPECIAL) {
1838 535 26 if (spec->flags & FLAG_CHECK_NARGS) {
1842 335 200 if (amin > 0) {
1868 474 61 if (amax >= 0) {
1895 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] == '%')) {
0 31 if (count_named_params(param_spec) || (param_spec->slurpy.name && SvPV_nolen(param_spec->slurpy.name)[0] == '%')) {
1906 17 13 cond = newLOGOP(OP_AND, 0,
1922 181 380 if (param_spec->shift) {
1926 181 0 for (i = 0; i < param_spec->shift; i++) {
1927 181 0 if (param_spec->positional_required.data[i].padoff != NOT_IN_PAD) {
1933 174 7 if (param_spec->shift == 1) {
1934 0 174 if (all_anon) {
1960 0 7 if (all_anon) {
1975 14 7 for (i = 0, lim = param_spec->shift; i < lim; i++) {
1977 0 14 lhs = op_append_elem(
2010 600 561 for (i = param_spec->shift, lim = param_spec->positional_required.used; i < lim; i++) {
2012 1 599 lhs = op_append_elem(
2025 111 561 for (i = 0, lim = param_spec->positional_optional.used; i < lim; i++) {
2027 2 109 lhs = op_append_elem(
2062 37 524 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] == '%';
2063 530 31 if (!count_named_params(param_spec)) {
2064 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) {
2066 0 17 type = slurpy_hash ? OP_PADHV : OP_PADAV;
2071 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) {
2079 48 513 if (padoff != NOT_IN_PAD) {
2089 31 17 if (type == OP_PADHV) {
2095 288 273 if (lhs) {
2118 111 561 for (i = 0, lim = param_spec->positional_optional.used; i < lim; i++) {
2124 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)) {
2134 1 11 if (cur->param.padoff == NOT_IN_PAD) {
2158 80 1 if (cur->param.padoff != NOT_IN_PAD) {
2178 31 530 if (count_named_params(param_spec)) {
2183 56 31 for (i = 0, lim = param_spec->named_required.used; i < lim; i++) {
2193 55 1 if (spec->flags & FLAG_CHECK_NARGS) {
2217 23 31 for (i = 0, lim = param_spec->named_optional.used; i < lim; i++) {
2228 4 19 if (init->op_type == OP_UNDEF && !(init->op_flags & OPf_KIDS)) {
4 0 if (init->op_type == OP_UNDEF && !(init->op_flags & OPf_KIDS)) {
2259 25 6 if (!param_spec->slurpy.name) {
2260 24 1 if (spec->flags & FLAG_CHECK_NARGS) {
2291 4 2 } else if (param_spec->slurpy.padoff != param_spec->rest_hash) {
2295 4 0 if (SvPV_nolen(param_spec->slurpy.name)[0] == '%') {
2301 4 0 if (param_spec->slurpy.padoff != NOT_IN_PAD) {
2326 561 0 if (spec->flags & FLAG_CHECK_TARGS) {
2330 788 560 for (i = 0, lim = param_spec->positional_required.used; i < lim; i++) {
2333 50 738 if (cur->type) {
2337 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))));
5 45 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))));
2342 111 560 for (i = 0, lim = param_spec->positional_optional.used; i < lim; i++) {
2345 0 111 if (cur->type) {
2352 56 560 for (i = 0, lim = param_spec->named_required.used; i < lim; i++) {
2355 0 56 if (cur->type) {
2362 23 560 for (i = 0, lim = param_spec->named_optional.used; i < lim; i++) {
2365 0 23 if (cur->type) {
2372 1 559 if (param_spec->slurpy.type) {
2380 1 0 if (SvPV_nolen(param_spec->slurpy.name)[0] == '@') {
2401 546 14 if (prelude_sentinel->op) {
2413 560 0 SvREFCNT_inc_simple_void(PL_compcv);
2418 44 516 cv = newATTRSUB(
343 217 cv = newATTRSUB(
322 21 cv = newATTRSUB(
318 4 cv = newATTRSUB(
2428 556 4 if (cv) {
2433 343 217 if (saw_name) {
2434 322 21 if (!runtime) {
2435 4 318 if (spec->install_sub) {
2443 7 14 *pop = newUNOP(
2475 277765 0 if (PL_parser && PL_parser->error_count) {
1 277764 if (PL_parser && PL_parser->error_count) {
2480 0 277764 if (kw_len > (STRLEN)I32_MAX) {
2484 0 277764 if (!(hints = GvHV(PL_hintgv))) {
2492 273457 4307 if (!(psv = hv_fetchs(hints, HINTK_CONFIG, 0))) {
2496 2 4305 if (!SvROK(sv)) {
2500 0 2 PUSHMARK(SP);
2509 0 4305 if (SvTYPE(sv2) != SVt_PVHV) {
2512 142 4163 if (lex_bufutf8()) {
2515 3677 628 if (!(psv = hv_fetch((HV *)sv2, kw_ptr, kw_xlen, 0))) {
2519 628 0 if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVHV))) {
0 628 if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVHV))) {
2551 0 628 FETCH_HINTSK_INTO(FLAGS, &sv);
2554 0 628 FETCH_HINTSK_INTO(REIFY, &sv);
2555 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) {
2560 0 628 FETCH_HINTSK_INTO(SHIFT, &sv);
2569 201 628 while (p < sv_p_end) {
2571 0 201 if (*p != '$') {
2575 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)) {
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)) {
2579 832 0 while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) {
0 832 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)) {
2583 0 201 if (v_end == v_start + 2 && v_start[1] == '_') {
0 0 if (v_end == v_start + 2 && v_start[1] == '_') {
2588 11 201 for (i = 0; i < lim; i++) {
2589 0 11 if (my_sv_eq_pvn(aTHX_ (*ppspec)->shift.data[i].name, v_start, v_end - v_start)) {
2594 201 0 if (p < sv_p_end && *p == '/') {
2 199 if (p < sv_p_end && *p == '/') {
2598 4 0 while (p < sv_p_end && isDIGIT(*p)) {
2 2 while (p < sv_p_end && isDIGIT(*p)) {
2603 2 0 if (!shift_types) {
2605 0 2 FETCH_HINTSK_INTO(SHIF2, &sv);
2606 2 0 if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVAV))) {
0 2 if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVAV))) {
2611 2 0 if (tix < 0 || tix > av_len(shift_types)) {
0 2 if (tix < 0 || tix > av_len(shift_types)) {
2615 0 2 if (!ptype) {
2619 0 2 if (!sv_isobject(type)) {
2625 201 0 if (p < sv_p_end) {
2626 0 201 if (*p != ' ') {
2634 0 628 FETCH_HINTSK_INTO(ATTRS, &sv);
2635 628 0 SvSetSV((*ppspec)->attrs, sv);
2637 0 628 FETCH_HINTSK_INTO(INSTL, &sv);
2638 12 616 if (SvTRUE(sv)) {
2655 628 277137 if (kw_flags_enter(aTHX_ &psen, keyword_ptr, keyword_len, &pspec)) {
2658 88 472 FREETMPS;
2739 18 0 RETVAL = PTR2UV(xcv ? CvROOT(xcv) : NULL);
14 4 RETVAL = PTR2UV(xcv ? CvROOT(xcv) : NULL);
2754 1 11 if (xcv) {
2755 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)) {
2762 12 0 if (GvSTASH(gv)) {
2763 1 11 gv_method_changed(gv);