Remove the ~~ feature.
p4raw-id: //depot/perl@29838
t/lib/feature/err Tests for enabling/disabling err feature
t/lib/feature/nonesuch Tests for enabling/disabling nonexistent feature
t/lib/feature/say Tests for enabling/disabling say feature
-t/lib/feature/smartmatch Tests for enabling/disabling smartmatch feature
t/lib/feature/switch Tests for enabling/disabling switch feature
t/lib/Filter/Simple/ExportTest.pm Helper file for Filter::Simple tests
t/lib/Filter/Simple/FilterOnlyTest.pm Helper file for Filter::Simple tests
# (feature name) => (internal name, used in %^H)
my %feature = (
switch => 'feature_switch',
- "~~" => "feature_~~",
say => "feature_say",
err => "feature_err",
state => "feature_state",
);
my %feature_bundle = (
- "5.10.0" => [qw(switch ~~ say err state)],
+ "5.10.0" => [qw(switch say err state)],
);
# latest version here
# keep it harcoded until we actually bump the version number to 5.10
See L<perlsyn/"Switch statements"> for details.
-=head2 The '~~' feature
-
-C<use feature '~~'> tells the compiler to enable the Perl 6
-smart match C<~~> operator.
-
-See L<perlsyn/"Smart matching in detail"> for details.
-
=head2 The 'say' feature
C<use feature 'say'> tells the compiler to enable the Perl 6
a I<feature bundle>. The name of a feature bundle is prefixed with
a colon, to distinguish it from an actual feature. At present, the
only feature bundles are C<use feature ":5.10"> and C<use feature ":5.10.0">,
-which both are equivalent to C<use feature qw(switch ~~ say err state)>.
+which both are equivalent to C<use feature qw(switch say err state)>.
In the forthcoming 5.10.X perl releases, C<use feature ":5.10"> will be
equivalent to the latest C<use feature ":5.10.X">.
+++ /dev/null
-Check the lexical scoping of the switch keywords.
-(The actual behaviour is tested in t/op/smartmatch.t)
-
-__END__
-# No ~~; should be a syntax error.
-use warnings;
-print +(2 ~~ 2);
-EXPECT
-syntax error at - line 3, near "2 ~"
-Execution of - aborted due to compilation errors.
-########
-# With ~~, should work
-use warnings;
-use feature "~~";
-print +(2 ~~ 2);
-EXPECT
-1
-########
-# ~~ out of scope; should be a syntax error.
-use warnings;
-{ use feature '~~'; }
-print +(2 ~~ 2);
-EXPECT
-syntax error at - line 4, near "2 ~"
-Execution of - aborted due to compilation errors.
-########
-# 'no feature' should work
-use warnings;
-use feature '~~';
-print +(2 ~~ 2), "\n";
-no feature;
-print +(2 ~~ 2), "\n";
-EXPECT
-syntax error at - line 6, near "2 ~"
-Execution of - aborted due to compilation errors.
-########
-# 'no feature "~~"' should work too
-use warnings;
-use feature '~~';
-print +(2 ~~ 2), "\n";
-no feature "~~";
-print +(2 ~~ 2), "\n";
-EXPECT
-syntax error at - line 6, near "2 ~"
-Execution of - aborted due to compilation errors.
my $tstr = "$left ~~ $right";
my $res;
- {
- use feature "~~";
- $res = eval $tstr // ""; #/ <- fix syntax colouring
- }
+ $res = eval $tstr // ""; #/ <- fix syntax colouring
die $@ if $@ ne "";
ok( ($yn =~ /!/ xor $res), "$tstr: $res");
/* FALL THROUGH */
case '~':
if (s[1] == '~'
- && (PL_expect == XOPERATOR || PL_expect == XTERMORDORDOR)
- && FEATURE_IS_ENABLED("~~"))
+ && (PL_expect == XOPERATOR || PL_expect == XTERMORDORDOR))
{
s += 2;
Eop(OP_SMARTMATCH);