diff options
author | Arne Johannessen <ajnn@cpan.org> | 2023-03-02 14:56:59 +0100 |
---|---|---|
committer | Paul Evans <leonerd@leonerd.org.uk> | 2023-03-02 16:27:02 +0000 |
commit | edcf480ecf5d1e197b42f41432d14000ddbdb2cc (patch) | |
tree | 0d09f1efb78f0d94ece3b6b57808b118fa8d3a41 /perly.y | |
parent | 49830b9d6df254629bb26062f7477b3b371dd1d2 (diff) | |
download | perl-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.y | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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 {} */ } |