From 584d6de3c29cb2cfef79ff17ac12f17ace000391 Mon Sep 17 00:00:00 2001 From: Kouhei Sutou Date: Tue, 24 Feb 2015 00:16:41 +0900 Subject: Fix a bug that if and no return value case can't return true clause value Here is a script that reproduce this problem: x = if true 1 else case 2 when 3 end 4 end p x # => nil # 1 is expected --- test/t/syntax.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'test/t/syntax.rb') diff --git a/test/t/syntax.rb b/test/t/syntax.rb index 7ec6272fe..2621e1b19 100644 --- a/test/t/syntax.rb +++ b/test/t/syntax.rb @@ -241,6 +241,20 @@ assert('Return values of case statements') do assert_equal 1, fb.call end +assert('Return values of if and case statements') do + true_clause_value = + if true + 1 + else + case 2 + when 3 + end + 4 + end + + assert_equal 1, true_clause_value +end + assert('splat in case statement') do values = [3,5,1,7,8] testa = [1,2,7] -- cgit v1.2.3