From 2abf664151aa8ea7769d2a6d0c7ebe82bddaba7c Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 10 Mar 2003 23:03:06 +0000 Subject: * eval.c (massign): remove unnecessary array unpacking; it should be handled before massign() by svalue_to_mrhs(). * eval.c (svalue_to_mrhs): '*a = v' value conversion to avalue (i.e. [1] => [[1]], [1,2] => [1,2]). * eval.c (rb_eval): use svalue_to_mrhs. * eval.c (rb_yield_0): ditto. * eval.c (proc_invoke): break from "Proc#yield" is legal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- sample/test.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'sample') diff --git a/sample/test.rb b/sample/test.rb index 141575bc90..247518c75e 100644 --- a/sample/test.rb +++ b/sample/test.rb @@ -240,6 +240,17 @@ def r; return *[*[]]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]]) def r; return *[*[1]]; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]]) def r; return *[*[1,2]]; end; a,b,*c = r(); test_ok([a,b,c] == [1,2,[]]) +f = lambda {|r,| test_ok([] == r)} +f.call([], *[]) +f.yield([], *[]) + +f = lambda {|r,*l| test_ok([] == r); test_ok([1] == l)} +f.call([], *[1]) +f.yield([], *[1]) + +a,=*[1] +test_ok(a == 1) + a = loop do break; end; test_ok(a == nil) a = loop do break nil; end; test_ok(a == nil) a = loop do break 1; end; test_ok(a == 1) -- cgit v1.2.3