diff options
author | Vincent Pit <vince@profvince.com> | 2009-11-28 13:27:02 +0100 |
---|---|---|
committer | Vincent Pit <vince@profvince.com> | 2009-11-28 13:27:02 +0100 |
commit | 17c59fdf7540adaf656e96fe6d48b58dab391dc0 (patch) | |
tree | 8ebc8c43e0cc725ea00bee7431183cac05cbe5fc | |
parent | 162177c1aed1991639f7f0da64e918c034e1148a (diff) | |
download | perl-17c59fdf7540adaf656e96fe6d48b58dab391dc0.tar.gz |
Allow a closing brace after an "use VERSION"
This fixes [perl #70884] : use VERSION in BLOCK without semicolon -> syntax error
-rwxr-xr-x | t/comp/use.t | 14 | ||||
-rw-r--r-- | toke.c | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/t/comp/use.t b/t/comp/use.t index fade9fec1a..c9b76d79a4 100755 --- a/t/comp/use.t +++ b/t/comp/use.t @@ -6,7 +6,7 @@ BEGIN { $INC{"feature.pm"} = 1; # so we don't attempt to load feature.pm } -print "1..69\n"; +print "1..73\n"; # Can't require test.pl, as we're testing the use/require mechanism here. @@ -62,6 +62,18 @@ sub isnt ($$;$) { _ok ('isnt', @_); } +eval "use 5"; # implicit semicolon +is ($@, ''); + +eval "use 5;"; +is ($@, ''); + +eval "{use 5}"; # [perl #70884] +is ($@, ''); + +eval "{use 5 }"; # [perl #70884] +is ($@, ''); + # new style version numbers eval q{ use v5.5.630; }; @@ -3807,7 +3807,8 @@ S_tokenize_use(pTHX_ int is_use, char *s) { s = SKIPSPACE1(s); if (isDIGIT(*s) || (*s == 'v' && isDIGIT(s[1]))) { s = force_version(s, TRUE); - if (*s == ';' || (s = SKIPSPACE1(s), *s == ';')) { + if (*s == ';' || *s == '}' + || (s = SKIPSPACE1(s), (*s == ';' || *s == '}'))) { start_force(PL_curforce); NEXTVAL_NEXTTOKE.opval = NULL; force_next(WORD); |