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