summaryrefslogtreecommitdiff
path: root/perly.y
diff options
context:
space:
mode:
authorArne Johannessen <ajnn@cpan.org>2023-03-02 14:56:59 +0100
committerPaul Evans <leonerd@leonerd.org.uk>2023-03-02 16:27:02 +0000
commitedcf480ecf5d1e197b42f41432d14000ddbdb2cc (patch)
tree0d09f1efb78f0d94ece3b6b57808b118fa8d3a41 /perly.y
parent49830b9d6df254629bb26062f7477b3b371dd1d2 (diff)
downloadperl-edcf480ecf5d1e197b42f41432d14000ddbdb2cc.tar.gz
Allow :isa in class declaration without a block
Using class attributes in the unit class syntax was a syntax error. This change makes the following two lines equivalent: class B :isa(A) ; class B :isa(A) { } Addresses GH issue #20888.
Diffstat (limited to 'perly.y')
-rw-r--r--perly.y5
1 files changed, 4 insertions, 1 deletions
diff --git a/perly.y b/perly.y
index 381c9f3419..8a3b8dcd12 100644
--- a/perly.y
+++ b/perly.y
@@ -443,13 +443,16 @@ barestmt: PLUGSTMT
package_version($version);
$$ = NULL;
}
- | KW_CLASS BAREWORD[version] BAREWORD[package] PERLY_SEMICOLON
+ | KW_CLASS BAREWORD[version] BAREWORD[package] subattrlist PERLY_SEMICOLON
{
package($package);
if ($version)
package_version($version);
$$ = NULL;
class_setup_stash(PL_curstash);
+ if ($subattrlist) {
+ class_apply_attributes(PL_curstash, $subattrlist);
+ }
}
| KW_USE_or_NO startsub
{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }