[#106341] [Ruby master Bug#18369] users.detect(:name, "Dorian") as shorthand for users.detect { |user| user.name == "Dorian" } — dorianmariefr <noreply@...>
Issue #18369 has been reported by dorianmariefr (Dorian Mari辿).
14 messages
2021/11/30
[#106351] [Ruby master Bug#18371] Release branches (release information in general) — "tenderlovemaking (Aaron Patterson)" <noreply@...>
Issue #18371 has been reported by tenderlovemaking (Aaron Patterson).
7 messages
2021/11/30
[ruby-core:106263] [Ruby master Bug#18289] Enumerable#to_a should delegate keyword arguments to #each
From:
"usa (Usaku NAKAMURA)" <noreply@...>
Date:
2021-11-24 10:38:22 UTC
List:
ruby-core #106263
Issue #18289 has been updated by usa (Usaku NAKAMURA).
Backport changed from 2.6: DONTNEED, 2.7: REQUIRED, 3.0: DONE to 2.6: DONTNEED, 2.7: DONE, 3.0: DONE
ruby_2_7 b1985629565c3c54b1a64d6faf213e8144857515 merged revision(s) e83c02a768af61cd0890a75e90bcae1119d8bd93.
----------------------------------------
Bug #18289: Enumerable#to_a should delegate keyword arguments to #each
https://bugs.ruby-lang.org/issues/18289#change-94883
* Author: Ethan (Ethan -)
* Status: Closed
* Priority: Normal
* ruby -v: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]
* Backport: 2.6: DONTNEED, 2.7: DONE, 3.0: DONE
----------------------------------------
`Enumerable#to_a` has always delegated its arguments to `#each`, but it does not handle keyword arguments. This seems like an oversight.
My project uses keyword arguments to an #each method, and this has broken Enumerable#to_a as of ruby 3 (and generates a warning on ruby 2.7).
```ruby
class Foo
include Enumerable
def each(opt: )
yield 'foo'
end
end
pp Foo.new.to_a(opt: 4)
```
ruby 2.4
```
["foo"]
```
ruby 2.7
```
to_a_kw_arg_delegation.rb:8: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
to_a_kw_arg_delegation.rb:3: warning: The called method `each' is defined here
["foo"]
```
ruby 3
```
to_a_kw_arg_delegation.rb:3:in `each': wrong number of arguments (given 1, expected 0; required keyword: opt) (ArgumentError)
from to_a_kw_arg_delegation.rb:8:in `to_a'
from to_a_kw_arg_delegation.rb:8:in `<main>'
```
---Files--------------------------------
to_a_kw_arg_delegation.rb (101 Bytes)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>