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.
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)
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';