From: "marcandre (Marc-Andre Lafortune)" <ruby-core@...>
Date: 2013-12-18T13:21:56+09:00
Subject: [ruby-core:59175] [ruby-trunk - Feature #9239] Array#to_h ignores	flat arrays


Issue #9239 has been updated by marcandre (Marc-Andre Lafortune).


zzak (Zachary Scott) wrote:
> How would committing after 2.1 create incompatibility?

If some rubyists write code for Ruby 2.1 using this new Arry#to_h and rely on the fact that elements that are not key value pairs are ignored, then this change in 2.2 will break their code. This is what I mean by incompatibility. 



----------------------------------------
Feature #9239: Array#to_h ignores flat arrays
https://bugs.ruby-lang.org/issues/9239#change-43738

Author: sawa (Tsuyoshi Sawada)
Status: Open
Priority: Normal
Assignee: marcandre (Marc-Andre Lafortune)
Category: core
Target version: current: 2.1.0


=begin
My understanding was that the newly introduced `Array#to_h` was to be equivalent to `Hash.[]`. But when I give a flat array, it returns an empty hash:

    [:a, :b].to_h # => {}
    [:a].to_h     # => {}

I expected `{:a => :b}` for the first example, and `ArgumentError: odd number of arguments for Hash` for the second example, as is with `Hash[]`. Was it intended to be different? If so, why is that the case? Even if it is to be different, it should at least raise an error when a flat array is given.
=end



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