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

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

This commit is contained in:
Nobuyoshi Nakada 2019-11-28 12:18:17 +09:00
parent 90d082e374
commit f0b815dc67
No known key found for this signature in database
GPG key ID: 4BC7D6DF58D8DF60
3 changed files with 10 additions and 1 deletions
NEWS.mdproc.c
spec/ruby/core/proc/shared

View file

@ -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

1
proc.c
View file

@ -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;
}

View file

@ -46,7 +46,7 @@ describe :proc_to_s, shared: true do
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