From 134d1ce89255f94c42730c814dbf3efed1c557d2 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 13 Apr 2016 05:36:26 +0000 Subject: parse.y: massign in cond * parse.y (assign_in_cond): allow multiple assignment in conditional expression. [Feature #10617] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_assignment.rb | 5 +++++ test/ruby/test_parse.rb | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/ruby/test_assignment.rb b/test/ruby/test_assignment.rb index daf1f0a9be..41c14d3a44 100644 --- a/test/ruby/test_assignment.rb +++ b/test/ruby/test_assignment.rb @@ -552,6 +552,11 @@ class TestAssignment < Test::Unit::TestCase a, b = Base::A, Base::B assert_equal [3,4], [a,b] end + + def test_massign_in_cond + result = eval("if (a, b = MyObj.new); [a, b]; end", nil, __FILE__, __LINE__) + assert_equal [[1,2],[3,4]], result + end end require_relative 'sentence' diff --git a/test/ruby/test_parse.rb b/test/ruby/test_parse.rb index 42df89189c..9f83598ceb 100644 --- a/test/ruby/test_parse.rb +++ b/test/ruby/test_parse.rb @@ -781,7 +781,7 @@ x = __ENCODING__ end def test_assign_in_conditional - assert_raise(SyntaxError) do + assert_nothing_raised do eval <<-END, nil, __FILE__, __LINE__+1 (x, y = 1, 2) ? 1 : 2 END -- cgit v1.2.3