diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-05-07 09:24:34 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-05-07 09:24:34 +0000 |
commit | 17c8fbdd6d3f8166352483ffbcf2e1f6586b82be (patch) | |
tree | d2deb1f04a46f1360850136ae0807dda558459da /eval.c | |
parent | fc4434d7d7088180e779da3272905822c9f7e5c1 (diff) |
* parse.y (arg): "||=" should not warn for uninitialized instance
variables.
* eval.c (rb_eval): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -2634,10 +2634,12 @@ rb_eval(self, n) goto again; case NODE_OP_ASGN_OR: - result = rb_eval(self, node->nd_head); - if (RTEST(result)) break; - node = node->nd_value; - goto again; + if ((node->nd_aid && !rb_ivar_defined(self, node->nd_aid)) || + !RTEST(result = rb_eval(self, node->nd_head))) { + node = node->nd_value; + goto again; + } + break; case NODE_MASGN: result = massign(self, node, rb_eval(self, node->nd_value),0); |