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:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>