Bug #11811 ยป vm_caller_setup_arg_block.diff
| test/ruby/test_lazy_enumerator.rb | ||
|---|---|---|
|     assert_warning("") {le.drop(1).force} | ||
|     assert_warning("") {le.drop_while{false}.force} | ||
|   end | ||
|   def test_symbol_chain | ||
|     assert_raise(NoMethodError) do | ||
|       [1, 2, 3].lazy.map(&:undefined).map(&:to_s).force | ||
|     end | ||
|   end | ||
| end | ||
| vm_args.c | ||
|---|---|---|
| 	else if (SYMBOL_P(proc) && rb_method_basic_definition_p(rb_cSymbol, idTo_proc)) { | ||
| 	    calling->blockptr = RUBY_VM_GET_BLOCK_PTR_IN_CFP(reg_cfp); | ||
| 	    calling->blockptr->iseq = (rb_iseq_t *)proc; | ||
| 	    calling->blockptr->proc = proc; | ||
| 	    calling->blockptr->proc = 0; | ||
| 	} | ||
| 	else if (RUBY_VM_IFUNC_P(proc)) { | ||
| 	    calling->blockptr = RUBY_VM_GET_BLOCK_PTR_IN_CFP(reg_cfp); | ||