diff options
author | shugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-12-16 10:35:34 +0000 |
---|---|---|
committer | shugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-12-16 10:35:34 +0000 |
commit | ed57f299b243842e4e874189771d93340aaadddc (patch) | |
tree | e89e728d76c11de219fee5da1f7ae6f9fc99a2c6 | |
parent | 63f486f1dbc220aacad4a7fa4d47a370c6071d90 (diff) | |
download | ruby-ed57f299b243842e4e874189771d93340aaadddc.tar.gz |
* 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
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | test/ruby/test_lazy_enumerator.rb | 7 | ||||
-rw-r--r-- | vm.c | 4 |
3 files changed, 16 insertions, 0 deletions
@@ -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 diff --git a/test/ruby/test_lazy_enumerator.rb b/test/ruby/test_lazy_enumerator.rb index 29c6b3e855..5feddd5bde 100644 --- a/test/ruby/test_lazy_enumerator.rb +++ b/test/ruby/test_lazy_enumerator.rb @@ -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 @@ -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; |