summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-03-03 04:55:35 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-03-03 04:55:35 +0000
commit54a04074256fa85db5da3bf0041773ddc3391196 (patch)
tree73b38f7c4ca353aa285a5fa0935a142c7a73d16f /parse.y
parente3b15cf111472455a75ec181ff676bf5d370038d (diff)
* eval.c (method_hash): new method. [ruby-talk:93968]
* eval.c (proc_eq): do not compare dyna_vars. * eval.c (proc_hash): new method. * eval.c (rb_yield_0): protect break/return from within orphan (or lambda) Proc object. * parse.y (yylex): should not allow symbol for invalid global variable (e.g. `:$-)`). [ruby-core:02518] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y5
1 files changed, 4 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index c116605047..471c8a8d2f 100644
--- a/parse.y
+++ b/parse.y
@@ -4244,7 +4244,10 @@ yylex()
tokadd(c);
tokfix();
yylval.id = rb_intern(tok());
- /* xxx shouldn't check if valid option variable */
+ if (!is_global_id(yylval.id)) {
+ rb_compile_error("invalid global variable `%s'", rb_id2name(yylval.id));
+ return 0;
+ }
return tGVAR;
case '&': /* $&: last match */