From: "matz (Yukihiro Matsumoto)" Date: 2013-06-10T08:23:29+09:00 Subject: [ruby-core:55394] [ruby-trunk - Bug #8507][Feedback] Keyword splat does not convert arg to Hash Issue #8507 has been updated by matz (Yukihiro Matsumoto). Status changed from Open to Feedback I hate consistency as a reason to change. Do you really want to do splat(**nil)? Matz. ---------------------------------------- Bug #8507: Keyword splat does not convert arg to Hash https://bugs.ruby-lang.org/issues/8507#change-39818 Author: stephencelis (Stephen Celis) Status: Feedback Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: syntax Target version: current: 2.1.0 ruby -v: ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.3.0] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN 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.

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()? -- http://bugs.ruby-lang.org/