Enable the ~~ operator by default.
Rafael Garcia-Suarez [Mon, 15 Jan 2007 18:25:45 +0000 (18:25 +0000)]
Remove the ~~ feature.

p4raw-id: //depot/perl@29838

MANIFEST
lib/feature.pm
t/lib/feature/smartmatch [deleted file]
t/op/smartmatch.t
toke.c

index 7a8aa79..7bdf45e 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -3349,7 +3349,6 @@ t/lib/dprof/V.pm          Perl code profiler tests
 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
index ab79d69..91e4562 100644 (file)
@@ -5,14 +5,13 @@ our $VERSION = '1.10';
 # (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
@@ -79,13 +78,6 @@ given/when construct.
 
 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
@@ -114,7 +106,7 @@ It's possible to load a whole slew of features in one go, using
 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">.
diff --git a/t/lib/feature/smartmatch b/t/lib/feature/smartmatch
deleted file mode 100644 (file)
index 16ea7f8..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-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.
index 6275f40..3c6d1c3 100644 (file)
@@ -48,10 +48,7 @@ sub match_test {
     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");
diff --git a/toke.c b/toke.c
index c22d508..ae4558b 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -4134,8 +4134,7 @@ Perl_yylex(pTHX)
        /* 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);