From 082445e7aff1fb6f04cf2c17b3c2582e64e096d3 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 29 Jan 2015 13:22:39 +0000 Subject: [PATCH] parse.y: condition node * parse.y (logop_gen): keep non-null condition node. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- bootstraptest/test_syntax.rb | 2 ++ parse.y | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bootstraptest/test_syntax.rb b/bootstraptest/test_syntax.rb index 80eaa6416d..a111990a1f 100644 --- a/bootstraptest/test_syntax.rb +++ b/bootstraptest/test_syntax.rb @@ -376,6 +376,8 @@ assert_equal %q{1}, %q{1 or 2 or 3 or 4} assert_equal %q{1}, %q{1 or false or 3 or 4} assert_equal %q{2}, %q{nil or 2 or 3 or 4} assert_equal %q{2}, %q{false or 2 or 3 or 4} +assert_equal %q{1}, %q{if true && ""; then 1; end} +assert_equal %q{1}, %q{if nil || true; then 1; end} assert_equal %q{false}, %q{nil or false or nil or false} assert_equal %q{elseng}, %q{ case diff --git a/parse.y b/parse.y index b48d910c4c..41f26215d9 100644 --- a/parse.y +++ b/parse.y @@ -9694,7 +9694,6 @@ logop_gen(struct parser_params *parser, enum node_type type, NODE *left, NODE *r case NODE_NIL: case NODE_FALSE: if (type == NODE_AND) return left; - left = 0; break; case NODE_TRUE: case NODE_LIT: