summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-16 12:07:29 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-16 12:07:29 +0000
commitc710449a85cb9a1556264ab1a5dfa1640e1f925a (patch)
tree8742222089fc8d0e8e2541c81818433e836eb990 /test
parent5fe865d0ac29601d8220e0055e46282cc25a472c (diff)
fix "&" handling in block parameter.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_yield.rb14
1 files changed, 8 insertions, 6 deletions
diff --git a/test/ruby/test_yield.rb b/test/ruby/test_yield.rb
index b49e3978c5..ef98954d8c 100644
--- a/test/ruby/test_yield.rb
+++ b/test/ruby/test_yield.rb
@@ -211,11 +211,6 @@ class TestRubyYieldGen < Test::Unit::TestCase
params.pop
end
- if params.last && params.last[0] == '&'
- result_binding[params.last[1]] = nil
- params.pop
- end
-
star_index = nil
params.each_with_index {|par, i|
star_index = i if par[0] == '*'
@@ -268,12 +263,19 @@ class TestRubyYieldGen < Test::Unit::TestCase
#p [:emu0, args, params]
+ result_binding = {}
+
+ if params.last && params.last[0] == '&'
+ result_binding[params.last[1]] = nil
+ params.pop
+ end
+
# TRICK #1 : single array argument is expanded if there are two or more params.
if args.length == 1 && Array === args[0] && 1 < params.length
args = args[0]
end
- result_binding = emu_bind_params(args, params)
+ emu_bind_params(args, params, result_binding)
#p result_binding
result_binding
end