diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2002-08-08 19:47:44 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2002-08-08 19:47:44 +0000 |
commit | 8e7ae056e33b3389a21755f55fa95e623bcad80f (patch) | |
tree | d5a1fc5b264589f78cef03a3ea2326335e5e2a84 | |
parent | 8dd4f5d2359f61079da3f00ffb623878fc66461a (diff) | |
download | perl-8e7ae056e33b3389a21755f55fa95e623bcad80f.tar.gz |
Fix bug #16080 : an attribute list should end at '}'
p4raw-id: //depot/perl@17704
-rw-r--r-- | t/op/attrs.t | 8 | ||||
-rw-r--r-- | toke.c | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/t/op/attrs.t b/t/op/attrs.t index dc604f31af..264de8a510 100644 --- a/t/op/attrs.t +++ b/t/op/attrs.t @@ -8,7 +8,7 @@ BEGIN { require './test.pl'; } -plan tests => 37; +plan tests => 39; $SIG{__WARN__} = sub { die @_ }; @@ -50,6 +50,12 @@ eval_ok 'my ($x,$y) : ;'; eval 'my ($x,$y) : plugh;'; like $@, qr/^Invalid SCALAR attribute: ["']?plugh["']? at/; +# bug #16080 +eval '{my $x : plugh}'; +like $@, qr/^Invalid SCALAR attribute: ["']?plugh["']? at/; +eval '{my ($x,$y) : plugh(})}'; +like $@, qr/^Invalid SCALAR attribute: ["']?plugh\(}\)["']? at/; + sub A::MODIFY_SCALAR_ATTRIBUTES { return } eval 'my A $x : plugh;'; like $@, qr/^SCALAR package attribute may clash with future reserved word: ["']?plugh["']? at/; @@ -3049,7 +3049,7 @@ Perl_yylex(pTHX) break; /* require real whitespace or :'s */ } tmp = (PL_expect == XOPERATOR ? '=' : '{'); /*'}(' for vi */ - if (*s != ';' && *s != tmp && (tmp != '=' || *s != ')')) { + if (*s != ';' && *s != '}' && *s != tmp && (tmp != '=' || *s != ')')) { char q = ((*s == '\'') ? '"' : '\''); /* If here for an expression, and parsed no attrs, back off. */ if (tmp == '=' && !attrs) { |