From e32da15f48189cfba02a9be2e6572161d91b3122 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 9 Apr 1998 09:30:25 +0000 Subject: 1.1b9_09 pre git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'parse.y') diff --git a/parse.y b/parse.y index 37334900eb..e511257b61 100644 --- a/parse.y +++ b/parse.y @@ -570,10 +570,16 @@ arg : variable '=' arg | variable OP_ASGN arg { value_expr($3); - if (is_local_id($1)&&!local_id($1)&&dyna_in_block()) - dyna_var_asgn($1, TRUE); - $$ = assignable($1, call_op(gettable($1), $2, 1, $3)); - fixpos($$, $3); + if (is_local_id($1)) { + if (local_id($1)||!dyna_in_block()) { + local_cnt($1); + } + else if (!dyna_var_defined($1)) { + dyna_var_asgn($1, TRUE); + } + } + $$ = assignable($1,call_op(gettable($1),$2,1,$3)); + fixpos($$, $3); } | primary '[' aref_args ']' OP_ASGN arg { -- cgit v1.2.3