line |
true |
false |
branch |
176
|
0 |
618 |
DEFVECTOR_INIT(spv_init, SpecParam); |
183
|
196 |
618 |
DEFVECTOR_CLEAR(spv_clear, SpecParam, sp_clear); |
185
|
0 |
196 |
DEFVECTOR_EXTEND(spv_extend, SpecParam); |
|
0 |
0 |
DEFVECTOR_EXTEND(spv_extend, SpecParam); |
223
|
6694 |
618 |
while (p) { |
225
|
6694 |
0 |
if (cur->destroy) { |
292
|
2101 |
14 |
p->needs_freed = o && !MY_OP_SLABBED(o); |
|
0 |
2101 |
p->needs_freed = o && !MY_OP_SLABBED(o); |
296
|
0 |
1922 |
if (p->needs_freed) { |
316
|
3017 |
0 |
const char *sv_p = SvPV(sv, sv_len); |
317
|
970 |
2047 |
return sv_len == n && memcmp(sv_p, p, n) == 0; |
|
242 |
728 |
return sv_len == n && memcmp(sv_p, p, n) == 0; |
334
|
28 |
11121 |
if (d - ds > 1) { |
355
|
31 |
1998 |
if (lex_bufutf8()) { |
362
|
12972 |
0 |
while (c != -1) { |
363
|
2057 |
10915 |
if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) { |
|
2055 |
2 |
if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) { |
|
2055 |
0 |
if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) { |
|
1555 |
500 |
if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) { |
|
10909 |
6 |
if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) { |
|
10909 |
0 |
if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) { |
|
9354 |
1555 |
if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) { |
|
10915 |
2057 |
if (at_substart ? MY_UNI_IDFIRST(c) : MY_UNI_IDCONT(c)) { |
368
|
719 |
1338 |
} else if (allow_package && !at_substart && c == '\'') { |
|
445 |
274 |
} else if (allow_package && !at_substart && c == '\'') { |
|
0 |
445 |
} else if (allow_package && !at_substart && c == '\'') { |
371
|
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)) { |
377
|
719 |
1338 |
} else if (allow_package && (at_start || !at_substart) && c == ':') { |
|
445 |
274 |
} else if (allow_package && (at_start || !at_substart) && c == ':') { |
|
445 |
0 |
} else if (allow_package && (at_start || !at_substart) && c == ':') { |
|
30 |
689 |
} else if (allow_package && (at_start || !at_substart) && c == ':') { |
379
|
0 |
30 |
if (lex_peek_unichar(0) != ':') { |
385
|
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)) { |
397
|
1531 |
498 |
return SvCUR(sv) ? sv : NULL; |
408
|
0 |
68 |
if (lex_bufutf8()) { |
415
|
0 |
242 |
if (c == EOF) { |
420
|
26 |
216 |
if (c == '\\') { |
422
|
0 |
26 |
if (c == EOF) { |
426
|
0 |
26 |
if (keep_backslash || (c != '(' && c != ')')) { |
|
0 |
0 |
if (keep_backslash || (c != '(' && c != ')')) { |
|
0 |
0 |
if (keep_backslash || (c != '(' && c != ')')) { |
429
|
0 |
216 |
} else if (c == '(') { |
431
|
68 |
148 |
} else if (c == ')') { |
432
|
68 |
0 |
if (!nesting) { |
449
|
67 |
0 |
start = SvPVbyte_force(proto, len); |
452
|
199 |
67 |
for (w = r = start; r < end; r++) { |
453
|
178 |
21 |
if (!isSPACE(*r)) { |
462
|
22 |
45 |
if (!ckWARN(WARN_ILLEGALPROTO)) { |
467
|
0 |
45 |
if (strspn(start, "$@%*;[]&\\_+") != len) { |
469
|
0 |
0 |
warner( |
487
|
58 |
23 |
for (r = start; r < end; r++) { |
498
|
10 |
1 |
if (r[1] && !strchr(";@%", r[1])) { |
|
6 |
4 |
if (r[1] && !strchr(";@%", r[1])) { |
510
|
0 |
5 |
if (r[1]) { |
522
|
2 |
10 |
if (strchr("$@%&*", *r)) { |
525
|
4 |
6 |
if (*r == '[') { |
527
|
4 |
0 |
for (; r < end && *r != ']'; r++) { |
|
4 |
0 |
for (; r < end && *r != ']'; r++) { |
528
|
4 |
0 |
if (!strchr("$@%&*", *r)) { |
532
|
0 |
4 |
if (*r == ']' && r[-1] != '[') { |
|
0 |
0 |
if (*r == ']' && r[-1] != '[') { |
559
|
1 |
74 |
if (!(t = my_scan_word(aTHX_ sen, TRUE))) { |
565
|
14 |
60 |
if (c == '[') { |
577
|
8 |
13 |
} while (c == ','); |
578
|
0 |
13 |
if (c != ']') { |
596
|
4 |
77 |
while ((c = lex_peek_unichar(0)) == '~') { |
604
|
2 |
75 |
if (c == '(') { |
613
|
0 |
2 |
if (c != ')') { |
634
|
2 |
73 |
while ((c = lex_peek_unichar(0)) == '/') { |
654
|
4 |
69 |
while ((c = lex_peek_unichar(0)) == '&') { |
674
|
11 |
58 |
while ((c = lex_peek_unichar(0)) == '|') { |
696
|
58 |
4 |
if ((flags & G_WANT) == 0) { |
704
|
0 |
62 |
PUSHMARK(SP); |
705
|
12 |
50 |
if (!args) { |
709
|
50 |
0 |
EXTEND(SP, (SSize_t)nargs); |
|
0 |
50 |
EXTEND(SP, (SSize_t)nargs); |
710
|
54 |
50 |
for (i = 0; i < nargs; i++) { |
723
|
4 |
55 |
if (want == G_VOID) { |
732
|
58 |
1 |
FREETMPS; |
743
|
0 |
37 |
if (!sv_isobject(t)) { |
781
|
0 |
1206 |
DEFVECTOR_INIT(pv_init, Param); |
782
|
0 |
1206 |
DEFVECTOR_INIT(piv_init, ParamInit); |
800
|
7 |
683 |
DEFVECTOR_EXTEND(pv_extend, Param); |
|
0 |
7 |
DEFVECTOR_EXTEND(pv_extend, Param); |
801
|
0 |
131 |
DEFVECTOR_EXTEND(piv_extend, ParamInit); |
|
0 |
0 |
DEFVECTOR_EXTEND(piv_extend, ParamInit); |
814
|
0 |
151 |
if (ps->used + n > ps->size) { |
816
|
0 |
0 |
Renew(ps->data, n2, Param); |
819
|
0 |
151 |
Move(ps->data, ps->data + n, ps->used, Param); |
820
|
157 |
151 |
for (i = 0; i < n; i++) { |
838
|
847 |
1206 |
DEFVECTOR_CLEAR(pv_clear, Param, p_clear); |
839
|
131 |
1206 |
DEFVECTOR_CLEAR_THX(piv_clear, ParamInit, pi_clear); |
854
|
45614 |
962 |
for (i = 0, lim = ps->positional_required.used; i < lim; i++) { |
855
|
2 |
45612 |
if (sv_eq(sv, ps->positional_required.data[i].name)) { |
860
|
70 |
962 |
for (i = 0, lim = ps->positional_optional.used; i < lim; i++) { |
861
|
0 |
70 |
if (sv_eq(sv, ps->positional_optional.data[i].param.name)) { |
866
|
104 |
961 |
for (i = 0, lim = ps->named_required.used; i < lim; i++) { |
867
|
1 |
103 |
if (sv_eq(sv, ps->named_required.data[i].name)) { |
872
|
12 |
961 |
for (i = 0, lim = ps->named_optional.used; i < lim; i++) { |
873
|
0 |
12 |
if (sv_eq(sv, ps->named_optional.data[i].param.name)) { |
891
|
504 |
21 |
if (ps->named_required.used || ps->named_optional.used || ps->slurpy.name) { |
|
496 |
8 |
if (ps->named_required.used || ps->named_optional.used || ps->slurpy.name) { |
|
31 |
465 |
if (ps->named_required.used || ps->named_optional.used || ps->slurpy.name) { |
960
|
6 |
40 |
if ((can_has_coercion = gv_fetchmethod_autoload(SvSTASH(SvRV(type)), "has_coercion", TRUE))) { |
962
|
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)) { |
970
|
0 |
46 |
if ((can_can_be_inlined = gv_fetchmethod_autoload(SvSTASH(SvRV(type)), "can_be_inlined", TRUE))) { |
972
|
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)) { |
978
|
0 |
46 |
if (can_be_inlined) { |
983
|
0 |
0 |
if (!can_inline_check) { |
985
|
0 |
0 |
if (!can_inline_check) { |
995
|
0 |
0 |
: name; |
1004
|
0 |
0 |
if (PL_parser->error_count) { |
1008
|
0 |
0 |
if (!chk) { |
1009
|
0 |
0 |
Perl_croak(aTHX_ "In %"SVf": inlining type constraint %"SVf" for %s %lu (%"SVf") failed", SVfARG(declarator), SVfARG(type), is_invocant ? "invocant" : "parameter", (unsigned long)nr, SVfARG(name)); |
1012
|
0 |
0 |
FREETMPS; |
1015
|
0 |
0 |
if (has_coercion) { |
1019
|
0 |
0 |
args2 = op_append_elem(OP_LIST, args2, padoff == NOT_IN_PAD ? newDEFSVOP() : my_var(aTHX_ 0, padoff)); |
1026
|
0 |
0 |
coerce = newASSIGNOP( |
1040
|
1 |
45 |
: my_var(aTHX_ 0, padoff); |
1042
|
3 |
43 |
if (has_coercion) { |
1053
|
0 |
3 |
arg = newASSIGNOP( |
1070
|
3 |
43 |
err = mkconstsv( |
1074
|
2 |
41 |
: newSVpvf("In %"SVf": %s %lu (%"SVf"): ", SVfARG(declarator), is_invocant ? "invocant" : "parameter", (unsigned long)nr, SVfARG(name)) |
1081
|
1 |
45 |
args = op_append_elem( |
1148
|
889 |
0 |
if (spec->flags & FLAG_TYPES_OK) { |
1149
|
12 |
877 |
if (c == '(') { |
1160
|
0 |
12 |
if (!(expr = parse_fullexpr(PARSE_OPTIONAL))) { |
1163
|
12 |
0 |
if (MY_OP_SLABBED(expr)) { |
1171
|
0 |
12 |
if (c != ')') { |
1177
|
12 |
0 |
SvREFCNT_inc_simple_void(PL_compcv); |
1178
|
0 |
12 |
if (expr_sentinel) { |
1182
|
5 |
7 |
if (!SvROK(*ptype)) { |
1184
|
0 |
7 |
} else if (!sv_isobject(*ptype)) { |
1189
|
877 |
0 |
} else if (MY_UNI_IDFIRST(c) || c == '~') { |
|
877 |
0 |
} else if (MY_UNI_IDFIRST(c) || c == '~') { |
|
36 |
841 |
} else if (MY_UNI_IDFIRST(c) || c == '~') { |
|
841 |
36 |
} else if (MY_UNI_IDFIRST(c) || c == '~') { |
|
0 |
0 |
} else if (MY_UNI_IDFIRST(c) || c == '~') { |
|
0 |
841 |
} else if (MY_UNI_IDFIRST(c) || c == '~') { |
1197
|
81 |
804 |
if (c == ':') { |
1206
|
0 |
885 |
if (c == -1) { |
1210
|
49 |
836 |
if (!(c == '$' || c == '@' || c == '%')) { |
|
6 |
43 |
if (!(c == '$' || c == '@' || c == '%')) { |
|
0 |
6 |
if (!(c == '$' || c == '@' || c == '%')) { |
1219
|
0 |
885 |
if (c == '#') { |
1225
|
17 |
868 |
if (!(name = my_scan_word(aTHX_ sen, FALSE))) { |
1227
|
0 |
868 |
} else if (sv_eq_pvs(name, "_")) { |
1237
|
17 |
868 |
if (c == '/') { |
1240
|
0 |
17 |
if (c != '/') { |
1241
|
0 |
0 |
Perl_croak(aTHX_ "In %"SVf": unexpected '%s' after '%"SVf"' (expecting '//=' or '=')", SVfARG(declarator), c == '=' ? "/=" : "/", SVfARG(name)); |
1246
|
0 |
17 |
if (c != '=') { |
1254
|
137 |
748 |
if (c == '=') { |
1259
|
135 |
2 |
if (c == ',' || c == ')') { |
|
4 |
131 |
if (c == ',' || c == ')') { |
1260
|
0 |
6 |
if (is_defined_or) { |
1265
|
117 |
14 |
if (param_spec->shift == 0 && spec->shift.used) { |
|
11 |
106 |
if (param_spec->shift == 0 && spec->shift.used) { |
1268
|
12 |
11 |
for (i = 0; i < lim; i++) { |
1284
|
35 |
850 |
if (c == ':') { |
1288
|
553 |
297 |
} else if (c == ',') { |
1291
|
0 |
297 |
} else if (c != ')') { |
1292
|
0 |
0 |
if (c == -1) { |
1300
|
868 |
17 |
: pad_add_name_sv(*pname, padadd_NO_DUP_CHECK, NULL, NULL) |
1310
|
0 |
547 |
PUSHMARK(SP); |
1311
|
0 |
547 |
EXTEND(SP, 9); |
1318
|
547 |
0 |
char *p = SvPV(declarator, n); |
1320
|
547 |
0 |
SV *tmp = newSVpvn_utf8(p, q ? (size_t)(q - p) : n, SvUTF8(declarator)); |
1333
|
331 |
216 |
if (lim) { |
1335
|
770 |
331 |
for (i = 0; i < lim; i++) { |
1338
|
45 |
725 |
av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef); |
1351
|
72 |
475 |
if (lim) { |
1353
|
111 |
72 |
for (i = 0; i < lim; i++) { |
1356
|
0 |
111 |
av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef); |
1369
|
22 |
525 |
if (lim) { |
1371
|
56 |
22 |
for (i = 0; i < lim; i++) { |
1374
|
0 |
56 |
av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef); |
1387
|
11 |
536 |
if (lim) { |
1389
|
19 |
11 |
for (i = 0; i < lim; i++) { |
1392
|
0 |
19 |
av_push(av, cur->type ? SvREFCNT_inc_simple_NN(cur->type) : &PL_sv_undef); |
1399
|
36 |
511 |
if (ps->slurpy.name) { |
1401
|
1 |
35 |
if (ps->slurpy.type) { |
1415
|
547 |
0 |
FREETMPS; |
1433
|
22 |
596 |
if (lex_bufutf8()) { |
1443
|
616 |
2 |
if ((spec->flags & FLAG_NAME_OK) && (saw_name = my_scan_word(aTHX_ sen, TRUE))) { |
|
347 |
269 |
if ((spec->flags & FLAG_NAME_OK) && (saw_name = my_scan_word(aTHX_ sen, TRUE))) { |
1445
|
2 |
345 |
if (PL_parser->expect != XSTATE) { |
1453
|
345 |
0 |
if ( |
1454
|
345 |
0 |
sv_eq_pvs(saw_name, "BEGIN") || |
1455
|
345 |
0 |
sv_eq_pvs(saw_name, "END") || |
1456
|
345 |
0 |
sv_eq_pvs(saw_name, "INIT") || |
1457
|
0 |
345 |
sv_eq_pvs(saw_name, "CHECK") || |
1464
|
3 |
268 |
} else if (!(spec->flags & FLAG_ANON_OK)) { |
1471
|
345 |
268 |
floor_ix = start_subparse(FALSE, saw_name ? 0 : CVf_ANON); |
1484
|
10 |
603 |
if (c != '(') { |
1502
|
889 |
577 |
while ((c = lex_peek_unichar(0)) != ')') { |
1510
|
868 |
17 |
if (padoff != NOT_IN_PAD) { |
1514
|
885 |
0 |
sigil = SvPV_nolen(name)[0]; |
1517
|
81 |
804 |
if (flags & PARAM_NAMED) { |
1518
|
0 |
81 |
if (padoff == NOT_IN_PAD) { |
1521
|
1 |
80 |
if (flags & PARAM_INVOCANT) { |
1524
|
0 |
80 |
if (sigil != '$') { |
1525
|
0 |
0 |
Perl_croak(aTHX_ "In %"SVf": named parameter %"SVf" can't be a%s", SVfARG(declarator), SVfARG(name), sigil == '@' ? "n array" : " hash"); |
1527
|
34 |
770 |
} else if (flags & PARAM_INVOCANT) { |
1528
|
0 |
34 |
if (init_sentinel->op) { |
1531
|
2 |
32 |
if (sigil != '$') { |
1532
|
1 |
1 |
Perl_croak(aTHX_ "In %"SVf": invocant %"SVf" can't be a%s", SVfARG(declarator), SVfARG(name), sigil == '@' ? "n array" : " hash"); |
1534
|
47 |
723 |
} else if (sigil != '$' && init_sentinel->op) { |
|
4 |
43 |
} else if (sigil != '$' && init_sentinel->op) { |
1535
|
2 |
2 |
Perl_croak(aTHX_ "In %"SVf": %s %"SVf" can't have a default value", SVfARG(declarator), sigil == '@' ? "array" : "hash", SVfARG(name)); |
1537
|
44 |
834 |
if (type && padoff == NOT_IN_PAD) { |
|
0 |
44 |
if (type && padoff == NOT_IN_PAD) { |
1542
|
5 |
873 |
if (param_spec->slurpy.name) { |
1545
|
42 |
831 |
if (sigil != '$') { |
1553
|
752 |
79 |
if (!(flags & PARAM_NAMED) && count_named_params(param_spec)) { |
|
1 |
751 |
if (!(flags & PARAM_NAMED) && count_named_params(param_spec)) { |
1554
|
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)); |
1557
|
32 |
798 |
if (flags & PARAM_INVOCANT) { |
1558
|
0 |
32 |
if (param_spec->shift) { |
1562
|
2 |
30 |
if (!(spec->flags & FLAG_INVOCANT)) { |
1565
|
29 |
1 |
if (spec->shift.used && spec->shift.used != param_spec->positional_required.used + 1) { |
|
3 |
26 |
if (spec->shift.used && spec->shift.used != param_spec->positional_required.used + 1) { |
1570
|
746 |
79 |
if (!(flags & PARAM_NAMED) && !init_sentinel->op && param_spec->positional_optional.used) { |
|
632 |
114 |
if (!(flags & PARAM_NAMED) && !init_sentinel->op && param_spec->positional_optional.used) { |
|
0 |
632 |
if (!(flags & PARAM_NAMED) && !init_sentinel->op && param_spec->positional_optional.used) { |
1574
|
133 |
692 |
if (init_sentinel->op && !(spec->flags & FLAG_DEFAULT_ARGS)) { |
|
2 |
131 |
if (init_sentinel->op && !(spec->flags & FLAG_DEFAULT_ARGS)) { |
1578
|
820 |
3 |
if (padoff != NOT_IN_PAD && ps_contains(aTHX_ param_spec, name)) { |
|
1 |
819 |
if (padoff != NOT_IN_PAD && ps_contains(aTHX_ param_spec, name)) { |
1582
|
78 |
744 |
if (flags & PARAM_NAMED) { |
1583
|
0 |
78 |
if (!(spec->flags & FLAG_NAMED_PARAMS)) { |
1587
|
19 |
59 |
if (init_sentinel->op) { |
1596
|
1 |
58 |
if (param_spec->positional_optional.used) { |
1603
|
112 |
632 |
if (init_sentinel->op) { |
1614
|
27 |
605 |
if (flags & PARAM_INVOCANT) { |
1625
|
539 |
38 |
if (param_spec->shift == 0 && spec->shift.used) { |
|
140 |
399 |
if (param_spec->shift == 0 && spec->shift.used) { |
1629
|
144 |
138 |
for (i = 0; i < lim; i++) { |
1631
|
2 |
142 |
if (ps_contains(aTHX_ param_spec, cur->name)) { |
1650
|
507 |
68 |
if (c == ':' || c == '{') /* '}' - hi, vim */ { |
|
507 |
0 |
if (c == ':' || c == '{') /* '}' - hi, vim */ { |
1653
|
575 |
0 |
if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') { |
|
0 |
575 |
if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') { |
|
0 |
575 |
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] == ':') { |
|
575 |
0 |
if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') { |
|
575 |
0 |
if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') { |
|
403 |
172 |
if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') { |
|
0 |
403 |
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] == ':') { |
|
172 |
403 |
if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') { |
|
172 |
0 |
if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') { |
|
172 |
0 |
if (SvTRUE(spec->attrs) && SvPV_nolen(spec->attrs)[0] == ':') { |
1658
|
234 |
341 |
if (c == ':') { |
1666
|
211 |
242 |
if (!(attr = my_scan_word(aTHX_ sen, FALSE))) { |
1673
|
174 |
68 |
if (c != '(') { |
1674
|
3 |
171 |
if (sv_eq_pvs(attr, "lvalue")) { |
1677
|
171 |
0 |
} else if (sv_eq_pvs(attr, "method")) { |
1684
|
0 |
68 |
if (!(sv = my_scan_parens_tail(aTHX_ sen, TRUE))) { |
1688
|
68 |
0 |
if (sv_eq_pvs(attr, "prototype")) { |
1689
|
1 |
67 |
if (proto) { |
1705
|
0 |
219 |
if (attr) { |
1709
|
9 |
210 |
if (c == ':') { |
1719
|
1 |
551 |
if (c != '{') /* '}' - hi, vim */ { |
1724
|
334 |
217 |
if (saw_name && !spec->install_sub && !(spec->flags & FLAG_RUNTIME)) { |
|
323 |
11 |
if (saw_name && !spec->install_sub && !(spec->flags & FLAG_RUNTIME)) { |
|
309 |
14 |
if (saw_name && !spec->install_sub && !(spec->flags & FLAG_RUNTIME)) { |
1730
|
309 |
0 |
SvREFCNT_inc_simple_void(PL_compcv); |
1743
|
15 |
294 |
newATTRSUB( |
1752
|
3 |
548 |
if (builtin_attrs & MY_ATTR_LVALUE) { |
1755
|
171 |
380 |
if (builtin_attrs & MY_ATTR_METHOD) { |
1758
|
0 |
551 |
if (builtin_attrs & MY_ATTR_SPECIAL) { |
1763
|
525 |
26 |
if (spec->flags & FLAG_CHECK_NARGS) { |
1767
|
325 |
200 |
if (amin > 0) { |
1793
|
465 |
60 |
if (amax >= 0) { |
1820
|
496 |
29 |
if (count_named_params(param_spec) || (param_spec->slurpy.name && SvPV_nolen(param_spec->slurpy.name)[0] == '%')) { |
|
31 |
465 |
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] == '%')) { |
1831
|
16 |
13 |
cond = newLOGOP(OP_AND, 0, |
1847
|
176 |
375 |
if (param_spec->shift) { |
1851
|
176 |
0 |
for (i = 0; i < param_spec->shift; i++) { |
1852
|
176 |
0 |
if (param_spec->positional_required.data[i].padoff != NOT_IN_PAD) { |
1858
|
169 |
7 |
if (param_spec->shift == 1) { |
1859
|
0 |
169 |
if (all_anon) { |
1885
|
0 |
7 |
if (all_anon) { |
1900
|
14 |
7 |
for (i = 0, lim = param_spec->shift; i < lim; i++) { |
1902
|
0 |
14 |
lhs = op_append_elem( |
1935
|
592 |
551 |
for (i = param_spec->shift, lim = param_spec->positional_required.used; i < lim; i++) { |
1937
|
1 |
591 |
lhs = op_append_elem( |
1950
|
111 |
551 |
for (i = 0, lim = param_spec->positional_optional.used; i < lim; i++) { |
1952
|
2 |
109 |
lhs = op_append_elem( |
1987
|
37 |
514 |
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] == '%'; |
1988
|
521 |
30 |
if (!count_named_params(param_spec)) { |
1989
|
31 |
490 |
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) { |
1991
|
0 |
17 |
type = slurpy_hash ? OP_PADHV : OP_PADAV; |
1996
|
2 |
28 |
} else if (slurpy_hash && param_spec->slurpy.padoff != NOT_IN_PAD) { |
|
2 |
0 |
} else if (slurpy_hash && param_spec->slurpy.padoff != NOT_IN_PAD) { |
2004
|
47 |
504 |
if (padoff != NOT_IN_PAD) { |
2014
|
30 |
17 |
if (type == OP_PADHV) { |
2020
|
279 |
272 |
if (lhs) { |
2043
|
111 |
551 |
for (i = 0, lim = param_spec->positional_optional.used; i < lim; i++) { |
2049
|
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)) { |
2058
|
1 |
11 |
if (cur->param.padoff == NOT_IN_PAD) { |
2082
|
80 |
1 |
if (cur->param.padoff != NOT_IN_PAD) { |
2102
|
30 |
521 |
if (count_named_params(param_spec)) { |
2107
|
56 |
30 |
for (i = 0, lim = param_spec->named_required.used; i < lim; i++) { |
2110
|
56 |
0 |
char *p = SvPV(cur->name, n); |
2117
|
55 |
1 |
if (spec->flags & FLAG_CHECK_NARGS) { |
2141
|
19 |
30 |
for (i = 0, lim = param_spec->named_optional.used; i < lim; i++) { |
2144
|
19 |
0 |
char *p = SvPV(cur->param.name, n); |
2152
|
1 |
18 |
if (!(init->op_type == OP_UNDEF && !(init->op_flags & OPf_KIDS))) { |
|
0 |
1 |
if (!(init->op_type == OP_UNDEF && !(init->op_flags & OPf_KIDS))) { |
2181
|
24 |
6 |
if (!param_spec->slurpy.name) { |
2182
|
23 |
1 |
if (spec->flags & FLAG_CHECK_NARGS) { |
2213
|
4 |
2 |
} else if (param_spec->slurpy.padoff != param_spec->rest_hash) { |
2217
|
4 |
0 |
if (SvPV_nolen(param_spec->slurpy.name)[0] == '%') { |
|
4 |
0 |
if (SvPV_nolen(param_spec->slurpy.name)[0] == '%') { |
2223
|
4 |
0 |
if (param_spec->slurpy.padoff != NOT_IN_PAD) { |
2248
|
551 |
0 |
if (spec->flags & FLAG_CHECK_TARGS) { |
2252
|
775 |
551 |
for (i = 0, lim = param_spec->positional_required.used; i < lim; i++) { |
2255
|
45 |
730 |
if (cur->type) { |
2259
|
40 |
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)))); |
|
40 |
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)))); |
2264
|
111 |
551 |
for (i = 0, lim = param_spec->positional_optional.used; i < lim; i++) { |
2267
|
0 |
111 |
if (cur->type) { |
2274
|
56 |
551 |
for (i = 0, lim = param_spec->named_required.used; i < lim; i++) { |
2277
|
0 |
56 |
if (cur->type) { |
2284
|
19 |
551 |
for (i = 0, lim = param_spec->named_optional.used; i < lim; i++) { |
2287
|
0 |
19 |
if (cur->type) { |
2294
|
1 |
550 |
if (param_spec->slurpy.type) { |
2302
|
1 |
0 |
if (SvPV_nolen(param_spec->slurpy.name)[0] == '@') { |
|
1 |
0 |
if (SvPV_nolen(param_spec->slurpy.name)[0] == '@') { |
2321
|
537 |
14 |
if (prelude_sentinel->op) { |
2333
|
551 |
0 |
SvREFCNT_inc_simple_void(PL_compcv); |
2338
|
44 |
507 |
cv = newATTRSUB( |
|
334 |
217 |
cv = newATTRSUB( |
|
313 |
21 |
cv = newATTRSUB( |
|
309 |
4 |
cv = newATTRSUB( |
2348
|
547 |
4 |
if (cv) { |
2353
|
334 |
217 |
if (saw_name) { |
2354
|
313 |
21 |
if (!runtime) { |
2355
|
4 |
309 |
if (spec->install_sub) { |
2363
|
7 |
14 |
*pop = newUNOP( |
2395
|
72570 |
0 |
if (PL_parser && PL_parser->error_count) { |
|
3 |
72567 |
if (PL_parser && PL_parser->error_count) { |
2400
|
0 |
72567 |
if (kw_len > (STRLEN)I32_MAX) { |
2404
|
0 |
72567 |
if (!(hints = GvHV(PL_hintgv))) { |
2412
|
68346 |
4221 |
if (!(psv = hv_fetchs(hints, HINTK_CONFIG, 0))) { |
2416
|
2 |
4219 |
if (!SvROK(sv)) { |
2420
|
0 |
2 |
PUSHMARK(SP); |
2429
|
0 |
4219 |
if (SvTYPE(sv2) != SVt_PVHV) { |
2432
|
132 |
4087 |
if (lex_bufutf8()) { |
2435
|
3601 |
618 |
if (!(psv = hv_fetch((HV *)sv2, kw_ptr, kw_xlen, 0))) { |
2439
|
618 |
0 |
if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVHV))) { |
|
0 |
618 |
if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVHV))) { |
2471
|
0 |
618 |
FETCH_HINTSK_INTO(FLAGS, &sv); |
2472
|
618 |
0 |
(*ppspec)->flags = SvIV(sv); |
2474
|
0 |
618 |
FETCH_HINTSK_INTO(REIFY, &sv); |
2475
|
618 |
0 |
if (!sv || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVCV) { |
|
618 |
0 |
if (!sv || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVCV) { |
|
0 |
618 |
if (!sv || !SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVCV) { |
2480
|
0 |
618 |
FETCH_HINTSK_INTO(SHIFT, &sv); |
2483
|
501 |
117 |
const char *const sv_p = SvPVutf8(sv, sv_len); |
2489
|
196 |
618 |
while (p < sv_p_end) { |
2491
|
0 |
196 |
if (*p != '$') { |
2495
|
196 |
0 |
if (p >= sv_p_end || !MY_UNI_IDFIRST_utf8(p, sv_p_end)) { |
|
196 |
0 |
if (p >= sv_p_end || !MY_UNI_IDFIRST_utf8(p, sv_p_end)) { |
|
0 |
196 |
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)) { |
2499
|
812 |
0 |
while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) { |
|
812 |
0 |
while (p < sv_p_end && MY_UNI_IDCONT_utf8(p, sv_p_end)) { |
|
616 |
196 |
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)) { |
2503
|
0 |
196 |
if (v_end == v_start + 2 && v_start[1] == '_') { |
|
0 |
0 |
if (v_end == v_start + 2 && v_start[1] == '_') { |
2508
|
11 |
196 |
for (i = 0; i < lim; i++) { |
2509
|
0 |
11 |
if (my_sv_eq_pvn(aTHX_ (*ppspec)->shift.data[i].name, v_start, v_end - v_start)) { |
2514
|
196 |
0 |
if (p < sv_p_end && *p == '/') { |
|
2 |
194 |
if (p < sv_p_end && *p == '/') { |
2518
|
4 |
0 |
while (p < sv_p_end && isDIGIT(*p)) { |
|
2 |
2 |
while (p < sv_p_end && isDIGIT(*p)) { |
2523
|
2 |
0 |
if (!shift_types) { |
2525
|
0 |
2 |
FETCH_HINTSK_INTO(SHIF2, &sv); |
2526
|
2 |
0 |
if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVAV))) { |
|
0 |
2 |
if (!(SvROK(sv) && (sv2 = SvRV(sv), SvTYPE(sv2) == SVt_PVAV))) { |
2531
|
2 |
0 |
if (tix < 0 || tix > av_len(shift_types)) { |
|
0 |
2 |
if (tix < 0 || tix > av_len(shift_types)) { |
2535
|
0 |
2 |
if (!ptype) { |
2539
|
0 |
2 |
if (!sv_isobject(type)) { |
2545
|
196 |
0 |
if (p < sv_p_end) { |
2546
|
0 |
196 |
if (*p != ' ') { |
2554
|
0 |
618 |
FETCH_HINTSK_INTO(ATTRS, &sv); |
2555
|
618 |
0 |
SvSetSV((*ppspec)->attrs, sv); |
2557
|
0 |
618 |
FETCH_HINTSK_INTO(INSTL, &sv); |
2558
|
618 |
0 |
if (SvTRUE(sv)) { |
|
0 |
618 |
if (SvTRUE(sv)) { |
|
0 |
618 |
if (SvTRUE(sv)) { |
|
0 |
0 |
if (SvTRUE(sv)) { |
|
0 |
0 |
if (SvTRUE(sv)) { |
|
616 |
2 |
if (SvTRUE(sv)) { |
|
616 |
0 |
if (SvTRUE(sv)) { |
|
606 |
10 |
if (SvTRUE(sv)) { |
|
0 |
606 |
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 |
606 |
if (SvTRUE(sv)) { |
2575
|
618 |
71952 |
if (kw_flags_enter(aTHX_ &psen, keyword_ptr, keyword_len, &pspec)) { |
2578
|
84 |
467 |
FREETMPS; |
2593
|
0 |
48 |
if (*old_plugin_p) { |
2597
|
48 |
0 |
if (!*old_plugin_p) { |
2659
|
18 |
0 |
RETVAL = PTR2UV(xcv ? CvROOT(xcv) : NULL); |
2674
|
1 |
11 |
if (xcv) { |
2675
|
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)) { |
2682
|
12 |
0 |
if (GvSTASH(gv)) { |
2683
|
1 |
11 |
gv_method_changed(gv); |