test_bmethod.rb: block in bmethod test

* test/-ext-/proc/test_bmethod.rb (test_super_in_bmethod): block
  in bmethod test for [Feature #10195].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2014-11-09 14:58:33 +00:00
Родитель 71c8cf27db
Коммит 770128ade3
2 изменённых файлов: 14 добавлений и 2 удалений

Просмотреть файл

@ -1,12 +1,17 @@
#include "ruby.h" #include "ruby.h"
static VALUE static VALUE
bug_proc_call_super(VALUE yieldarg, VALUE procarg) bug_proc_call_super(RB_BLOCK_CALL_FUNC_ARGLIST(yieldarg, procarg))
{ {
VALUE args[2]; VALUE args[2];
VALUE ret;
args[0] = yieldarg; args[0] = yieldarg;
args[1] = procarg; args[1] = procarg;
return rb_call_super(2, args); ret = rb_call_super(2, args);
if (!NIL_P(blockarg)) {
ret = rb_proc_call(blockarg, ret);
}
return ret;
} }
static VALUE static VALUE

Просмотреть файл

@ -21,4 +21,11 @@ class TestProc::TestBMethod
obj = Bound.new obj = Bound.new
assert_equal([1, 42], obj.foo(1)) assert_equal([1, 42], obj.foo(1))
end end
def test_block_super
obj = Bound.new
result = nil
obj.foo(2) {|*a| result = a}
assert_equal([2, 42], result)
end
end end