diff --git a/dist/Safe/t/safeops.t b/dist/Safe/t/safeops.t index ea159316009c..57c46b62c3ee 100644 --- a/dist/Safe/t/safeops.t +++ b/dist/Safe/t/safeops.t @@ -453,7 +453,7 @@ dor $x // $y dorassign $x //= $y once SKIP {use feature 'state'; state $foo = 42;} say SKIP {use feature 'say'; say "foo";} -smartmatch no warnings 'experimental::smartmatch'; $x ~~ $y +smartmatch no warnings 'deprecated'; $x ~~ $y aeach SKIP each @t akeys SKIP keys @t avalues SKIP values @t diff --git a/lib/B/Deparse.t b/lib/B/Deparse.t index c7a3307a9ab8..ae1372f63050 100644 --- a/lib/B/Deparse.t +++ b/lib/B/Deparse.t @@ -1061,7 +1061,7 @@ my $c = []; my $d = \[]; #### # SKIP ?$] < 5.010 && "smartmatch and given/when not implemented on this Perl version" -# CONTEXT use feature ':5.10'; no warnings 'experimental::smartmatch'; +# CONTEXT use feature ':5.10'; no warnings 'deprecated'; # implicit smartmatch in given/when given ('foo') { when ('bar') { continue; } @@ -1624,7 +1624,7 @@ my @a; $a[0] = 1; #### # feature features without feature -# CONTEXT no warnings 'experimental::smartmatch'; +# CONTEXT no warnings 'deprecated'; CORE::state $x; CORE::say $x; CORE::given ($x) { @@ -1640,7 +1640,7 @@ CORE::evalbytes ''; () = CORE::fc $x; #### # feature features when feature has been disabled by use VERSION -# CONTEXT no warnings 'experimental::smartmatch'; +# CONTEXT no warnings 'deprecated'; use feature (sprintf(":%vd", $^V)); use 1; CORE::say $_; @@ -1670,7 +1670,7 @@ CORE::evalbytes ''; () = CORE::__SUB__; #### # (the above test with CONTEXT, and the output is equivalent but different) -# CONTEXT use feature ':5.10'; no warnings 'experimental::smartmatch'; +# CONTEXT use feature ':5.10'; no warnings 'deprecated'; # feature features when feature has been disabled by use VERSION use feature (sprintf(":%vd", $^V)); use 1; @@ -1704,7 +1704,7 @@ CORE::evalbytes ''; #### # SKIP ?$] < 5.017004 && "lexical subs not implemented on this Perl version" # lexical subroutines and keywords of the same name -# CONTEXT use feature 'lexical_subs', 'switch'; no warnings 'experimental'; +# CONTEXT use feature 'lexical_subs', 'switch'; no warnings 'experimental'; no warnings 'deprecated'; my sub default; my sub else; my sub elsif; diff --git a/lib/overload.t b/lib/overload.t index 3a2b50ed9225..adb57d3ee20d 100644 --- a/lib/overload.t +++ b/lib/overload.t @@ -1910,7 +1910,7 @@ foreach my $op (qw(<=> == != < <= > >=)) { for my $sub (keys %subs) { - no warnings 'experimental::smartmatch'; + no warnings 'deprecated'; my $term = $subs{$sub}; my $t = sprintf $term, '$_[0][0]'; my $e ="sub { \$funcs .= '($sub)'; my \$r; if (\$use_int) {" @@ -1952,7 +1952,7 @@ foreach my $op (qw(<=> == != < <= > >=)) { ? "-\$_[0][0]" : "$_[3](\$_[0][0])"; my $r; - no warnings 'experimental::smartmatch'; + no warnings 'deprecated'; if ($use_int) { use integer; $r = eval $e; } @@ -1999,7 +1999,7 @@ foreach my $op (qw(<=> == != < <= > >=)) { $use_int = ($int ne ''); my $plain = $tainted_val; my $plain_term = $int . sprintf $sub_term, '$plain'; - my $exp = do {no warnings 'experimental::smartmatch'; eval $plain_term }; + my $exp = do {no warnings 'deprecated'; eval $plain_term }; diag("eval of plain_term <$plain_term> gave <$@>") if $@; SKIP: { is_if_taint_supported(tainted($exp), $exp_taint, @@ -2029,7 +2029,7 @@ foreach my $op (qw(<=> == != < <= > >=)) { my $res_term = $int . sprintf $sub_term, $var; my $desc = "<$res_term> $ov_pkg" ; - my $res = do { no warnings 'experimental::smartmatch'; eval $res_term }; + my $res = do { no warnings 'deprecated'; eval $res_term }; diag("eval of res_term $desc gave <$@>") if $@; # uniquely, the inc/dec ops return the original # ref rather than a copy, so stringify it to diff --git a/t/lib/croak/pp_ctl b/t/lib/croak/pp_ctl index de0221b57d32..a63cbd78491e 100644 --- a/t/lib/croak/pp_ctl +++ b/t/lib/croak/pp_ctl @@ -41,7 +41,7 @@ EXPECT Can't find label foo at - line 3. ######## # NAME when outside given -use 5.01; no warnings 'experimental::smartmatch'; +use 5.01; no warnings 'deprecated'; when(undef){} EXPECT Can't "when" outside a topicalizer at - line 2. diff --git a/t/lib/feature/switch b/t/lib/feature/switch index 0dee7f51cf91..4d379ea21322 100644 --- a/t/lib/feature/switch +++ b/t/lib/feature/switch @@ -3,28 +3,28 @@ Check the lexical scoping of the switch keywords. __END__ # No switch; given should be a bareword. -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; print STDOUT given; EXPECT Unquoted string "given" may clash with future reserved word at - line 3. given ######## # No switch; when should be a bareword. -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; print STDOUT when; EXPECT Unquoted string "when" may clash with future reserved word at - line 3. when ######## # No switch; default should be a bareword. -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; print STDOUT default; EXPECT Unquoted string "default" may clash with future reserved word at - line 3. default ######## # No switch; break should be a bareword. -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; print STDOUT break; EXPECT Unquoted string "break" may clash with future reserved word at - line 3. @@ -36,19 +36,19 @@ EXPECT Can't "continue" outside a when block at - line 2. ######## # Use switch; so given is a keyword -use feature 'switch'; no warnings 'experimental::smartmatch'; +use feature 'switch'; no warnings 'deprecated'; given("okay\n") { print } EXPECT okay ######## # Use switch; so when is a keyword -use feature 'switch'; no warnings 'experimental::smartmatch'; +use feature 'switch'; no warnings 'deprecated'; given(1) { when(1) { print "okay" } } EXPECT okay ######## # Use switch; so default is a keyword -use feature 'switch'; no warnings 'experimental::smartmatch'; +use feature 'switch'; no warnings 'deprecated'; given(1) { default { print "okay" } } EXPECT okay @@ -60,7 +60,7 @@ EXPECT Can't "break" outside a given block at - line 3. ######## # switch out of scope; given should be a bareword. -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; { use feature 'switch'; given (1) {print "Okay here\n";} } @@ -71,7 +71,7 @@ Okay here given ######## # switch out of scope; when should be a bareword. -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; { use feature 'switch'; given (1) { when(1) {print "Okay here\n";} } } @@ -82,7 +82,7 @@ Okay here when ######## # switch out of scope; default should be a bareword. -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; { use feature 'switch'; given (1) { default {print "Okay here\n";} } } @@ -93,7 +93,7 @@ Okay here default ######## # switch out of scope; break should be a bareword. -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; { use feature 'switch'; given (1) { break } } @@ -103,7 +103,7 @@ Unquoted string "break" may clash with future reserved word at - line 6. break ######## # C should work -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; use feature 'switch'; given (1) { when(1) {print "Okay here\n";} } no feature 'switch'; @@ -114,7 +114,7 @@ Okay here when ######## # C should work too -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; use feature 'switch'; given (1) { when(1) {print "Okay here\n";} } no feature; @@ -125,14 +125,14 @@ Okay here when ######## # Without the feature, no 'Unambiguous use of' warning: -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; @break = ($break = "break"); print ${break}, ${break[0]}; EXPECT breakbreak ######## # With the feature, we get an 'Unambiguous use of' warning: -use warnings; no warnings 'experimental::smartmatch'; +use warnings; no warnings 'deprecated'; use feature 'switch'; @break = ($break = "break"); print ${break}, ${break[0]}; diff --git a/t/lib/warnings/9uninit b/t/lib/warnings/9uninit index 5c173fdb2ac8..0ceb0d240aa8 100644 --- a/t/lib/warnings/9uninit +++ b/t/lib/warnings/9uninit @@ -1943,7 +1943,7 @@ $v = 1 + prototype $fn; EXPECT Use of uninitialized value in addition (+) at - line 4. ######## -use warnings 'uninitialized'; no warnings 'experimental::smartmatch'; +use warnings 'uninitialized'; no warnings 'deprecated'; my $v; my $fn = sub {}; $v = 1 + (1 ~~ $fn); diff --git a/t/lib/warnings/op b/t/lib/warnings/op index 4ef9d565f198..d9de0a441f4c 100644 --- a/t/lib/warnings/op +++ b/t/lib/warnings/op @@ -363,7 +363,7 @@ OPTION fatal Can't use an array as a reference at - line 3. ######## # op.c -use warnings 'void' ; no warnings 'experimental::smartmatch'; close STDIN ; +use warnings 'void' ; no warnings 'deprecated'; close STDIN ; #line 2 1 x 3 ; # OP_REPEAT (folded) (1) x 3 ; # OP_REPEAT diff --git a/t/op/cmpchain.t b/t/op/cmpchain.t index 48aaabf1e5b7..13672b836c09 100644 --- a/t/op/cmpchain.t +++ b/t/op/cmpchain.t @@ -7,7 +7,6 @@ BEGIN { } use feature "isa"; -no warnings qw(experimental::smartmatch); my @cheqop = qw(== != eq ne); my @nceqop = qw(<=> cmp ~~); @@ -15,18 +14,21 @@ my @chrelop = qw(< > <= >= lt gt le ge); my @ncrelop = qw(isa); foreach my $c0 (@nceqop) { + no warnings qw(deprecated); foreach my $c1 (@nceqop) { is eval("sub { \$a $c0 \$b $c1 \$c }"), undef, "$c0 $c1 non-associative"; } } foreach my $c (@nceqop) { + no warnings qw(deprecated); foreach my $e (@cheqop) { is eval("sub { \$a $c \$b $e \$c }"), undef, "$c $e non-associative"; is eval("sub { \$a $e \$b $c \$c }"), undef, "$e $c non-associative"; } } foreach my $c (@nceqop) { + no warnings qw(deprecated); foreach my $e0 (@cheqop) { foreach my $e1 (@cheqop) { is eval("sub { \$a $c \$b $e0 \$c $e1 \$d }"), undef, diff --git a/t/op/coreamp.t b/t/op/coreamp.t index ca39c2c555a4..588b4ed50552 100644 --- a/t/op/coreamp.t +++ b/t/op/coreamp.t @@ -15,8 +15,6 @@ BEGIN { $^P |= 0x100; # Provide informative "file" names for evals } -no warnings 'experimental::smartmatch'; - sub lis($$;$) { &is(map(@$_ ? "[@{[map $_//'~~u~~', @$_]}]" : 'nought', @_[0,1]), $_[2]); } @@ -375,6 +373,7 @@ test_proto 'break'; { $tests ++; my $tmp; + no warnings 'deprecated'; CORE::given(1) { CORE::when(1) { &mybreak; @@ -463,6 +462,7 @@ SKIP: test_proto 'continue'; $tests ++; +no warnings 'deprecated'; CORE::given(1) { CORE::when(1) { &mycontinue(); diff --git a/t/op/smartmatch.t b/t/op/smartmatch.t index 10d35390d79e..ca85d15785c2 100644 --- a/t/op/smartmatch.t +++ b/t/op/smartmatch.t @@ -8,7 +8,7 @@ BEGIN { use strict; use warnings; no warnings 'uninitialized'; -no warnings 'experimental::smartmatch'; +no warnings 'deprecated'; # smartmatch is deprecated and will be removed in 5.042 ++$|; @@ -146,7 +146,7 @@ sub NOT_DEF() { undef } # re-introduced it will probably crash in one of the many smoke # builds. fresh_perl_is('print (q(x) ~~ q(x)) | (/x/ ~~ %!)', "1", - { switches => [ "-MErrno", "-M-warnings=experimental::smartmatch" ] }, + { switches => [ "-MErrno", "-M-warnings=deprecated" ] }, "don't fill the stack with rubbish"); } @@ -194,10 +194,10 @@ sub NOT_DEF() { undef } # if there was some other operator's arguments left on the stack, as with # the test cases. fresh_perl_is('print(0->[0 =~ qr/1/ ~~ 0])', '', - { switches => [ "-M-warnings=experimental::smartmatch" ] }, + { switches => [ "-M-warnings=deprecated" ] }, "don't qr-ify left-side match against a stacked argument"); fresh_perl_is('print(0->[0 ~~ (0 =~ qr/1/)])', '', - { switches => [ "-M-warnings=experimental::smartmatch" ] }, + { switches => [ "-M-warnings=deprecated" ] }, "don't qr-ify right-side match against a stacked argument"); } diff --git a/t/op/state.t b/t/op/state.t index 7aef435ffdc4..747e316f226a 100644 --- a/t/op/state.t +++ b/t/op/state.t @@ -346,7 +346,7 @@ foreach my $x (0 .. 4) { # my @spam = qw [spam ham bacon beans]; foreach my $spam (@spam) { - no warnings 'experimental::smartmatch'; + no warnings 'deprecated'; given (state $spam = $spam) { when ($spam [0]) {ok 1, "given"} default {ok 0, "given"} diff --git a/t/op/switch.t b/t/op/switch.t index dbfd906e2a2d..e1c079956f0d 100644 --- a/t/op/switch.t +++ b/t/op/switch.t @@ -8,7 +8,7 @@ BEGIN { use strict; use warnings; -no warnings 'experimental::smartmatch'; +no warnings 'deprecated'; plan tests => 197; diff --git a/t/op/taint.t b/t/op/taint.t index b4b590ef5d3d..daeb164efafe 100644 --- a/t/op/taint.t +++ b/t/op/taint.t @@ -2453,6 +2453,7 @@ EOF my $desc = "tainted value returned from " . shift(@descriptions); my $res = do { + no warnings 'deprecated'; given ($_) { when ('x') { $letter } when ('y') { goto leavegiven } @@ -2482,7 +2483,7 @@ EOF # Tainted values with smartmatch # [perl #93590] S_do_smartmatch stealing its own string buffers { -no warnings 'experimental::smartmatch'; +no warnings 'deprecated'; ok "M$TAINT" ~~ ['m', 'M'], '$tainted ~~ ["whatever", "match"]'; ok !("M$TAINT" ~~ ['m', undef]), '$tainted ~~ ["whatever", undef]'; } diff --git a/t/op/tie_fetch_count.t b/t/op/tie_fetch_count.t index d8b906d7ab45..86505f6eba85 100644 --- a/t/op/tie_fetch_count.t +++ b/t/op/tie_fetch_count.t @@ -165,7 +165,7 @@ $_ = "foo"; $dummy = $var =~ m/ / ; check_count 'm//'; $dummy = $var =~ s/ //; check_count 's///'; { - no warnings 'experimental::smartmatch'; + no warnings 'deprecated'; $dummy = $var ~~ 1 ; check_count '~~'; } $dummy = $var =~ y/ //; check_count 'y///';