File tree Expand file tree Collapse file tree 5 files changed +37
-44
lines changed Expand file tree Collapse file tree 5 files changed +37
-44
lines changed Original file line number Diff line number Diff line change @@ -6198,6 +6198,7 @@ t/lib/warnings/pp_sys Tests for pp_sys.c for warnings.t
61986198t/lib/warnings/regcomp Tests for regcomp.c for warnings.t
61996199t/lib/warnings/regexec Tests for regexec.c for warnings.t
62006200t/lib/warnings/run Tests for run.c for warnings.t
6201+ t/lib/warnings/signatures Tests for signatures-related warnings for warnings.t
62016202t/lib/warnings/sv Tests for sv.c for warnings.t
62026203t/lib/warnings/taint Tests for taint.c for warnings.t
62036204t/lib/warnings/toke Tests for toke.c for warnings.t
Original file line number Diff line number Diff line change @@ -209,6 +209,11 @@ EXPECT
209209Illegal character following sigil in a subroutine signature at - line 2, near "($"
210210syntax error at - line 2, near "$$) "
211211########
212+ # NAME global $_ in signature
213+ sub t101 ($_) { }
214+ EXPECT
215+ Can't use global $_ in subroutine signature at - line 2, near "($_"
216+ ########
212217# NAME global @_ in signature
213218sub t101 (@_) { }
214219EXPECT
@@ -218,4 +223,8 @@ Can't use global @_ in subroutine signature at - line 2, near "(@_"
218223sub t102 (%_) { }
219224EXPECT
220225Can't use global %_ in subroutine signature at - line 2, near "(%_"
221-
226+ ########
227+ # NAME global $1 in signature
228+ sub t101 ($1) { }
229+ EXPECT
230+ Illegal operator following parameter in a subroutine signature at - line 2, near "($1"
Original file line number Diff line number Diff line change @@ -2039,13 +2039,6 @@ sub dont_warn_48 { $a //= return $b; }
20392039sub dont_warn_49 { $a &&= exit $b; }
20402040EXPECT
20412041########
2042- use feature "signatures";
2043- sub aaa { 2 }
2044- sub bbb ($a) { 4 }
2045- $aaa = sub { 2 };
2046- $bbb = sub ($a) { 4 };
2047- EXPECT
2048- ########
20492042use warnings 'numeric';
20502043my $c = -4.5;
20512044my $a = "y" x $c;
Original file line number Diff line number Diff line change 1+ # PREAMBLE use warnings;
2+ # PREAMBLE use feature 'signatures';
3+ __END__
4+ ########
5+ # NAME simple usage does not provoke warnings
6+ sub aaa { 2 }
7+ sub bbb ($a) { 4 }
8+ $aaa = sub { 2 };
9+ $bbb = sub ($a) { 4 };
10+ EXPECT
11+ ########
12+ # NAME warnings from default expressions come from the correct line
13+ sub multiline1 (
14+ $a,
15+ $b = $a + 1,
16+ $c = $a + 1)
17+ {
18+ my $d = $a + 1;
19+ my $e = $a + 1;
20+ }
21+ multiline1(undef);
22+ EXPECT
23+ Use of uninitialized value $a in addition (+) at - line 5.
24+ Use of uninitialized value $a in addition (+) at - line 6.
25+ Use of uninitialized value $a in addition (+) at - line 8.
26+ Use of uninitialized value $a in addition (+) at - line 9.
Original file line number Diff line number Diff line change @@ -1386,42 +1386,6 @@ while(<$kh>) {
13861386 " RT 132760 err 0" ;
13871387}
13881388
1389- # check that warnings come from the correct line
1390-
1391- {
1392- my @warn ;
1393- local $SIG {__WARN__ } = sub { push @warn , @_ };
1394- eval q{
1395- sub multiline1 (
1396- $a,
1397- $b = $a + 1,
1398- $c = $a + 1)
1399- {
1400- my $d = $a + 1;
1401- my $e = $a + 1;
1402- }
1403- } ;
1404- multiline1(undef );
1405- like $warn [0], qr / line 4,/ , ' multiline1: $b' ;
1406- like $warn [1], qr / line 5,/ , ' multiline1: $c' ;
1407- like $warn [2], qr / line 7,/ , ' multiline1: $d' ;
1408- like $warn [3], qr / line 8,/ , ' multiline1: $e' ;
1409- }
1410-
1411- # check errors for using global vars as params
1412-
1413- {
1414- eval q{ sub ($_) {} } ;
1415- like $@ , qr / Can't use global \$ _ in subroutine signature/ , ' f($_)' ;
1416- eval q{ sub (@_) {} } ;
1417- like $@ , qr / Can't use global \@ _ in subroutine signature/ , ' f(@_)' ;
1418- eval q{ sub (%_) {} } ;
1419- like $@ , qr / Can't use global \% _ in subroutine signature/ , ' f(%_)' ;
1420- eval q{ sub ($1) {} } ;
1421- like $@ , qr / Illegal operator following parameter in a subroutine signature/ ,
1422- ' f($1)' ;
1423- }
1424-
14251389# check that various uses of @_ inside signatured subs causes "experimental"
14261390# warnings at compiletime
14271391{
You can’t perform that action at this time.
0 commit comments