Issue #17197 has been updated by Eregon (Benoit Daloze). marcandre (Marc-Andre Lafortune) wrote in #note-1: > Also, as noted by @boblail, `Hash#map` accepts both arity 1 and 2; shouldn't it accept only arity 1? Agreed, especially since Hash#each changed to always yield a single argument. I think it was just the same implementation as for Hash#each that would check the given Proc's arity. ---------------------------------------- Bug #17197: Some Hash methods still have arity 2 instead of 1 https://bugs.ruby-lang.org/issues/17197#change-87767 * Author: marcandre (Marc-Andre Lafortune) * Status: Open * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) * ruby -v: ruby 3.0.0dev (2020-09-26T17:38:39Z master 950614b088) * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- `Hash#each` was changed recently to have arity of 1. All other methods of `Hash` should behave the same. Much has been fixed since #14015, but some remains: ```ruby # Some methods consistently have arity 2: {a: 1}.select( &->(_kvp) {} ) # => ArgumentError (wrong number of arguments (given 2, expected 1)) ``` All in all: `%i[select keep_if delete_if reject to_h]` have their arity still set at 2. -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>