From: ruby-core@... Date: 2014-08-11T09:42:41+00:00 Subject: [ruby-core:64296] [ruby-trunk - Bug #9291] array splatting a nil works, but hash splatting a nil does not Issue #9291 has been updated by Marc-Andre Lafortune. Assignee set to Yukihiro Matsumoto Currently, `*` uses explicit conversion to array (`to_a`, not `to_ary`), while `**` uses implicit conversion to hash (`to_hash`, not `to_h`). So your question about `nil` can be explained this way, since `nil.to_a #=> []` but `nil.to_hash` is not defined. The real question is then: shouldn't `**` be using explicit conversion to hash with to_h? ---------------------------------------- Bug #9291: array splatting a nil works, but hash splatting a nil does not https://bugs.ruby-lang.org/issues/9291#change-48279 * Author: First Last * Status: Open * Priority: Normal * Assignee: Yukihiro Matsumoto * Category: * Target version: * ruby -v: ruby 2.0.0p353 (2013-11-22 revision 43784) [i686-linux] * Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- irb(main):001:0> [*nil] => [] irb(main):002:0> {**nil} TypeError: no implicit conversion of nil into Hash -- https://bugs.ruby-lang.org/