[ruby-core:96345] [Ruby master Bug#8507] Keyword splat does not convert arg to Hash

[email protected]
Newsgroups gmane.comp.lang.ruby.core
Message-ID <redmine.journal-83255.20191219232856.bd436bcd62436fa3@ruby-lang.org>
Issue #8507 has been updated by mame (Yusuke Endoh).

Backport deleted (1.9.3: UNKNOWN, 2.0.0: UNKNOWN)
Status changed from Feedback to Rejected

As far as I understand, no one showed any actual use case that justifies adding `nil.to_h #=> {}`.

I agree with matz, it would be better to remove `nil.to_a #=> []` instead of adding `nil.to_h #=> {}` for this issue.  I don't think it is possible for the compatibility reason, though.

----------------------------------------
Bug #8507: Keyword splat does not convert arg to Hash
https://bugs.ruby-lang.org/issues/8507#change-83255

* Author: stephencelis (Stephen Celis)
* Status: Rejected
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
* Target version: 
* ruby -v: ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.3.0]
* Backport: 
----------------------------------------
A single splat is useful to convert an object to an array as it passes from one method to the next, so I expected the double-splat to do the same and convert the object to a hash.

~~~ruby
def splat *args
  p args
end
def double_splat **kwargs
  p args
end
splat(*nil)  # []
splat(**nil) # TypeError: no implicit conversion of nil into Hash
~~~

For the sake of consistency, wouldn't it make sense to wrap the double-splatted arg with `Hash()` the same way a single-splatted arg is wrapped with `Array()`?


---Files--------------------------------
to-hash-kwarg.patch (939 Bytes)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.