diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-03-09 07:57:00 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-03-09 07:57:00 +0000 |
commit | 2b6ab941234426b8891f1bad036fd75611038312 (patch) | |
tree | 22ae6172fcc75cb8073529cb7f2719b11f0cf036 /parse.y | |
parent | 6a3fdf70f18a7b67808f23ddbd28e9631f7f905a (diff) |
1.1b9_00
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -3649,6 +3649,14 @@ logop(type, left, right) { value_expr(left); + switch (nd_type(left)) { + case NODE_NIL: /* always false */ + case NODE_FALSE: + return type == NODE_OR ? right : left; + case NODE_LIT: /* always true */ + return type == NODE_AND ? right : left; + } + return node_newnode(type, cond(left), cond(right)); } |