diff options
Diffstat (limited to 'bootstraptest/test_block.rb')
-rw-r--r-- | bootstraptest/test_block.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/bootstraptest/test_block.rb b/bootstraptest/test_block.rb index 97fcdd4bef..f139c21d15 100644 --- a/bootstraptest/test_block.rb +++ b/bootstraptest/test_block.rb @@ -472,3 +472,28 @@ assert_equal '[nil, []]', %q{ GC.stress=false r.inspect }, '[ruby-dev:32567]' + +assert_equal NilClass.to_s, %q{ + r = false; 1.times{|&b| r = b}; r.class +} + +assert_equal 'ok', %q{ + class C + define_method(:foo) do |arg, &block| + if block then block.call else arg end + end + end + C.new.foo("ng") {"ok"} +}, '[ruby-talk:266422]' + +assert_equal 'ok', %q{ + STDERR.reopen(STDOUT) + class C + define_method(:foo) do |&block| + block.call if block + end + result = "ng" + new.foo() {result = "ok"} + result + end +} |