diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-09 09:30:25 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-09 09:30:25 +0000 |
commit | e32da15f48189cfba02a9be2e6572161d91b3122 (patch) | |
tree | 47c660015f96f23220975c71fd69e71f8a69b6ef /parse.y | |
parent | 8673eacafa039f056927e0f91ce195afae9b9019 (diff) |
1.1b9_09 pre
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -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 { |