Remove deprecated no-op :locked attribute
authorDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Mon, 18 Jan 2016 12:52:29 +0000 (12:52 +0000)
committerSawyer X <xsawyerx@cpan.org>
Thu, 1 Jun 2017 08:53:44 +0000 (10:53 +0200)
It's been a no-op since 5.10 and deprecated since 5.12.

dist/Attribute-Handlers/lib/Attribute/Handlers.pm
ext/attributes/attributes.pm
lib/B/Deparse.pm
pod/perldiag.pod
t/lib/warnings/toke
t/op/attrs.t
toke.c

index 710fe08..67e4dc7 100644 (file)
@@ -140,7 +140,7 @@ sub AUTOLOAD {
 }
 
 my $builtin = $] ge '5.027000'
-    ? qr/lvalue|method|locked|shared/
+    ? qr/lvalue|method|shared/
     : qr/lvalue|method|locked|shared|unique/;
 
 sub _gen_handler_AH_() {
index 85ec9ce..3a3a43e 100644 (file)
@@ -19,7 +19,6 @@ sub carp {
 }
 
 my %deprecated;
-$deprecated{CODE} = qr/\A-?(locked)\z/;
 
 my %msg = (
     lvalue => 'lvalue attribute applied to already-defined subroutine',
@@ -254,12 +253,6 @@ C<sub foo($$) : prototype(@) {}> is indistinguishable from C<sub foo(@){}>.
 If illegalproto warnings are enabled, the prototype declared inside this
 attribute will be sanity checked at compile time.
 
-=item locked
-
-The "locked" attribute is deprecated, and has no effect in 5.10.0 and later.
-It was used as part of the now-removed "Perl 5.005 threads". It will
-disappear in Perl 5.28, after which its use will be fatal.
-
 =item const
 
 This experimental attribute, introduced in Perl 5.22, only applies to
index 3166415..6c35a72 100644 (file)
@@ -47,7 +47,7 @@ use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
         MDEREF_SHIFT
     );
 
-$VERSION = '1.40';
+$VERSION = '1.41';
 use strict;
 use vars qw/$AUTOLOAD/;
 use warnings ();
@@ -1334,7 +1334,6 @@ Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL");
     }
     if ($cv->CvFLAGS & (CVf_METHOD|CVf_LOCKED|CVf_LVALUE|CVf_ANONCONST)) {
         push @attrs, "lvalue" if $cv->CvFLAGS & CVf_LVALUE;
-        push @attrs, "locked" if $cv->CvFLAGS & CVf_LOCKED;
         push @attrs, "method" if $cv->CvFLAGS & CVf_METHOD;
         push @attrs, "const"  if $cv->CvFLAGS & CVf_ANONCONST;
     }
index 25f4c68..5652b10 100644 (file)
@@ -418,13 +418,6 @@ assigning through that reference.  For example
 used as an lvalue, which is pretty strange.  Perhaps you forgot to
 dereference it first.  See L<perlfunc/substr>.
 
-=item Attribute "locked" is deprecated, and will disappear in Perl 5.28
-
-(D deprecated) You have used the attributes pragma to modify the
-"locked" attribute on a code reference.  The :locked attribute is
-obsolete, has had no effect since 5005 threads were removed, and
-will be removed in a Perl 5.28.
-
 =item Attribute prototype(%s) discards earlier prototype attribute in same sub
 
 (W misc) A sub was declared as sub foo : prototype(A) : prototype(B) {}, for
index 564174c..49fa97e 100644 (file)
@@ -1250,23 +1250,6 @@ EXPECT
 !=~ should be !~ at - line 9.
 ########
 # toke.c
-sub pam :locked;
-sub glipp :locked {
-}
-sub whack_eth ($) : locked {
-}
-no warnings 'deprecated';
-sub zapeth :locked;
-sub ker_plop :locked {
-}
-sub swa_a_p ($) : locked {
-}
-EXPECT
-Attribute "locked" is deprecated, and will disappear in Perl 5.28 at - line 3.
-Attribute "locked" is deprecated, and will disappear in Perl 5.28 at - line 4.
-Attribute "locked" is deprecated, and will disappear in Perl 5.28 at - line 6.
-########
-# toke.c
 use warnings "syntax";
 sub proto_after_array(@$);
 sub proto_after_arref(\@$);
index eb31b18..2514270 100644 (file)
@@ -160,14 +160,13 @@ like $@, qr/Can't declare scalar dereference in "my"/;
 
 my @code = qw(lvalue method);
 my @other = qw(shared);
-my @deprecated = qw(locked);
-my @invalid = qw(unique);
+my @deprecated = qw();
+my @invalid = qw(unique locked);
 my %valid;
 $valid{CODE} = {map {$_ => 1} @code};
 $valid{SCALAR} = {map {$_ => 1} @other};
 $valid{ARRAY} = $valid{HASH} = $valid{SCALAR};
 my %deprecated;
-$deprecated{CODE} = { locked => 1 };
 
 our ($scalar, @array, %hash);
 foreach my $value (\&foo, \$scalar, \@array, \%hash) {
diff --git a/toke.c b/toke.c
index 0f37b8b..ce6fe22 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -5896,11 +5896,6 @@ Perl_yylex(pTHX)
                        sv_free(sv);
                        CvLVALUE_on(PL_compcv);
                    }
-                   else if (!PL_in_my && len == 6 && strnEQ(SvPVX(sv), "locked", len)) {
-                       sv_free(sv);
-                        deprecate_disappears_in("5.28",
-                            "Attribute \"locked\" is deprecated");
-                   }
                    else if (!PL_in_my && len == 6 && strnEQ(SvPVX(sv), "method", len)) {
                        sv_free(sv);
                        CvMETHOD_on(PL_compcv);