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); |