In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/64016071d009e8d6ad2dc5a71b86e0e2741a7037?hp=aa9621e6ae7442f957cee30769521f3030bd582f>

- Log -----------------------------------------------------------------
commit 64016071d009e8d6ad2dc5a71b86e0e2741a7037
Author: Father Chrysostomos <[email protected]>
Date:   Wed Jan 21 21:37:01 2015 -0800

    attributes.xs: Don’t emit const warning for anons
    
    The intent was to emit the warning for any cases other than custom
    attributes on anonymous subs.  I did that by checking to see whether
    we had a closure prototype, warning otherwise.  But anonymous subs
    that are not closures are not closure prototypes.  So we need to
    check CvANON instead.
-----------------------------------------------------------------------

Summary of changes:
 ext/attributes/attributes.xs | 2 +-
 t/op/attrs.t                 | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/ext/attributes/attributes.xs b/ext/attributes/attributes.xs
index b1dd60f..9c9ec11 100644
--- a/ext/attributes/attributes.xs
+++ b/ext/attributes/attributes.xs
@@ -48,7 +48,7 @@ modify_SV_attributes(pTHX_ SV *sv, SV **retlist, SV 
**attrlist, int numattrs)
                    if (negated)
                        CvANONCONST_off(sv);
                    else {
-                       const bool warn = (!CvCLONE(sv) || CvCLONED(sv))
+                       const bool warn = (!CvANON(sv) || CvCLONED(sv))
                                       && !CvANONCONST(sv);
                        CvANONCONST_on(sv);
                        if (warn)
diff --git a/t/op/attrs.t b/t/op/attrs.t
index f8515fb..b93ed74 100644
--- a/t/op/attrs.t
+++ b/t/op/attrs.t
@@ -407,7 +407,9 @@ is $ProtoTest::Proto, '$', 'prototypes are visible in attr 
handlers';
         attributes->import(shift, shift, lc shift) if $_[2]; ()
     }
     $_ = 32487;
-    my $sub = sub : Const { $_ };
+    my $sub = eval '+sub : Const { $_ }';
+    ::is $w, '',
+     'no warning for :const applied to closure protosub via attributes.pm';
     undef $_;
     ::is &$sub, 32487,
         'applying const attr via attributes.pm';

--
Perl5 Master Repository

Reply via email to