1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* vm.c (vm_make_proc_from_block): should convert a Symbol to a Proc.

[ruby-core:72083] [Bug #11811]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shugo 2015-12-16 10:35:34 +00:00
parent 63f486f1db
commit ed57f299b2
3 changed files with 16 additions and 0 deletions

View file

@ -1,3 +1,8 @@
Wed Dec 16 19:30:56 2015 Shugo Maeda <shugo@ruby-lang.org>
* vm.c (vm_make_proc_from_block): should convert a Symbol to a Proc.
[ruby-core:72083] [Bug #11811]
Wed Dec 16 16:17:34 2015 Eric Wong <e@80x24.org>
* test/ruby/test_io.rb: fix spelling errors

View file

@ -532,4 +532,11 @@ EOS
assert_warning("") {le.drop(1).force}
assert_warning("") {le.drop_while{false}.force}
end
def test_symbol_chain
assert_equal(["1", "3"], [1, 2, 3].lazy.reject(&:even?).map(&:to_s).force)
assert_raise(NoMethodError) do
[1, 2, 3].lazy.map(&:undefined).map(&:to_s).force
end
end
end

4
vm.c
View file

@ -567,6 +567,10 @@ vm_make_proc_from_block(rb_thread_t *th, rb_block_t *block, VALUE *procptr)
*procptr = block->proc = rb_vm_make_proc(th, block, rb_cProc);
return TRUE;
}
else if (SYMBOL_P(block->proc)) {
*procptr = rb_sym_to_proc(block->proc);
return TRUE;
}
else {
*procptr = block->proc;
return FALSE;