lambda yield emulator refactored.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
65b0b08529
commit
88e1fec393
@ -220,11 +220,11 @@ class TestRubyYieldGen < Test::Unit::TestCase
|
|||||||
if islambda
|
if islambda
|
||||||
if star_index
|
if star_index
|
||||||
if args.length < params.length - 1
|
if args.length < params.length - 1
|
||||||
throw :argumenterror, ArgumentError
|
throw :emuerror, ArgumentError
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if args.length != params.length
|
if args.length != params.length
|
||||||
throw :argumenterror, ArgumentError
|
throw :emuerror, ArgumentError
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -254,7 +254,7 @@ class TestRubyYieldGen < Test::Unit::TestCase
|
|||||||
result_binding
|
result_binding
|
||||||
end
|
end
|
||||||
|
|
||||||
def emu(t, islambda)
|
def emu_bind(t, islambda)
|
||||||
#puts
|
#puts
|
||||||
#p t
|
#p t
|
||||||
command_args_noblock = t[1]
|
command_args_noblock = t[1]
|
||||||
@ -297,13 +297,17 @@ class TestRubyYieldGen < Test::Unit::TestCase
|
|||||||
result_binding
|
result_binding
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def emu(t, vars, islambda)
|
||||||
|
catch(:emuerror) {
|
||||||
|
emu_binding = emu_bind(t, islambda)
|
||||||
|
vars.map {|var| emu_binding.fetch(var, "NOVAL") }
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
def check_nofork(t, islambda=false)
|
def check_nofork(t, islambda=false)
|
||||||
t, vars = rename_var(t)
|
t, vars = rename_var(t)
|
||||||
t = t.subst('vars') { " [#{vars.join(",")}]" }
|
t = t.subst('vars') { " [#{vars.join(",")}]" }
|
||||||
emu_values = catch(:argumenterror) {
|
emu_values = emu(t, vars, islambda)
|
||||||
emu_binding = emu(t, islambda)
|
|
||||||
vars.map {|var| emu_binding.fetch(var, "NOVAL") }
|
|
||||||
}
|
|
||||||
s = t.to_s
|
s = t.to_s
|
||||||
#print "#{s}\t\t"
|
#print "#{s}\t\t"
|
||||||
#STDOUT.flush
|
#STDOUT.flush
|
||||||
|
Loading…
x
Reference in New Issue
Block a user