`Proc` made by `Symbol#to_proc` should be a lambda [Bug #16260]

上级 90d082e3
......@@ -34,6 +34,13 @@ sufficient information, see the ChangeLog file or Redmine
* Hash#transform_keys now accepts a hash that maps keys to new
keys. [[Feature #16274]]
* Symbol
* Modified method
* Symbol#to_proc now returns a lambda Proc.
[[Feature #16260]]
## Stdlib updates (outstanding ones only)
* Net::HTTP
......@@ -71,6 +78,7 @@ sufficient information, see the ChangeLog file or Redmine
[Feature #8948]: https://bugs.ruby-lang.org/issues/8948
[Feature #15575]: https://bugs.ruby-lang.org/issues/15575
[Feature #16131]: https://bugs.ruby-lang.org/issues/16131
[Feature #16260]: https://bugs.ruby-lang.org/issues/16260
[Feature #16274]: https://bugs.ruby-lang.org/issues/16274
[Feature #16377]: https://bugs.ruby-lang.org/issues/16377
[Feature #16555]: https://bugs.ruby-lang.org/issues/16555
......@@ -697,6 +697,7 @@ sym_proc_new(VALUE klass, VALUE sym)
GetProcPtr(procval, proc);
vm_block_type_set(&proc->block, block_type_symbol);
proc->is_lambda = TRUE;
RB_OBJ_WRITE(procval, &proc->block.as.symbol, sym);
return procval;
}
......
......@@ -46,7 +46,7 @@ def hello; end
describe "for a proc created with Symbol#to_proc" do
it "returns a description including '(&:symbol)'" do
proc = :foobar.to_proc
proc.send(@method).should =~ /^#<Proc:0x\h+\(&:foobar\)>$/
proc.send(@method).should.include?('(&:foobar)')
end
it "has a binary encoding" do
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册