From 6ded26953a9fb0ca12a426dabf241650ace6e45f Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 7 Jun 2001 08:29:59 +0000 Subject: * parse.y (yylex): exclude kDO_BLOCK too much by false condition. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 +++++- parse.y | 11 +++++++---- version.h | 4 ++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4453b8746..65b1332bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,8 @@ -Wed Jun 6 23:02:36 2001 Keiju Ishitsuka +Thu Jun 7 17:28:00 2001 Yukihiro Matsumoto + + * parse.y (yylex): exclude kDO_BLOCK too much by false condition. + +Wed Jun 6 23:02:36 2001 Keiju Ishitsuka * lib/sync.rb: bug fix if obj.initialize has parameters when obj.extend(Sync_m) diff --git a/parse.y b/parse.y index c67a51096..0ae00da19 100644 --- a/parse.y +++ b/parse.y @@ -426,6 +426,9 @@ stmt : kALIAS fitem {lex_state = EXPR_FNAME;} fitem } | lhs '=' mrhs_basic { + if (nd_type($3) == NODE_RESTARGS) { + nd_set_type($3, NODE_REXPAND); + } $$ = node_assign($1, $3); } | mlhs '=' mrhs @@ -1147,7 +1150,7 @@ mrhs_basic : args ',' arg | tSTAR arg { value_expr($2); - $$ = NEW_REXPAND($2); + $$ = NEW_RESTARGS($2); } primary : literal @@ -1212,8 +1215,9 @@ primary : literal } | tLBRACK aref_args ']' { - if ($2 == 0) + if ($2 == 0) { $$ = NEW_ZARRAY(); /* zero length array*/ + } else { $$ = $2; } @@ -3719,8 +3723,7 @@ yylex() } if (kw->id[0] == kDO) { if (COND_P()) return kDO_COND; - if (CMDARG_P() && state != EXPR_CMDARG && state != EXPR_ARG) - return kDO_BLOCK; + if (CMDARG_P()) return kDO_BLOCK; return kDO; } if (state == EXPR_BEG) diff --git a/version.h b/version.h index 97d9118bd..9ec28b4ab 100644 --- a/version.h +++ b/version.h @@ -1,4 +1,4 @@ #define RUBY_VERSION "1.7.1" -#define RUBY_RELEASE_DATE "2001-06-06" +#define RUBY_RELEASE_DATE "2001-06-07" #define RUBY_VERSION_CODE 171 -#define RUBY_RELEASE_CODE 20010606 +#define RUBY_RELEASE_CODE 20010607 -- cgit