Issue #9533 has been reported by Takeshi Sasaki.

----------------------------------------
Bug #9533: ruby 2.1.0のHash#flattenが以前のバージョンと異なる挙動をする
https://bugs.ruby-lang.org/issues/9533

* Author: Takeshi Sasaki
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
ruby 2.1.0で、Hash#flattenに0以下の引数を与えた場合、ruby 2.0.0以前と
異なる結果を返します。例えば、以下のコード

    h = {:a=>1, :b=>[2,3], :c=>4}
    p h.flatten(-1)
    p h.flatten(0)
    
をtest.rbとして実行すると、ruby 1.9.3では、

    bash-4.2$ ruby -v
    ruby 1.9.3p484 (2013-11-22 revision 43786) [i686-linux]
    bash-4.2$ ruby test.rb
    [:a, 1, :b, 2, 3, :c, 4]
    [[:a, 1], [:b, [2, 3]], [:c, 4]]
    
となりますが、ruby 2.1.0では、

    bash-4.2$ ruby -v
    ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]
    bash-4.2$ ruby test.rb
    [:a, 1, :b, [2, 3], :c, 4]
    [:a, 1, :b, [2, 3], :c, 4]

となります。ruby 2.1.0のドキュメント

http://docs.ruby-lang.org/ja/2.1.0/doc/index.html

および doc/NEWS-2.1.0 で、挙動を変更した記載を確認できないため、バグと
判断しました。


---Files--------------------------------
hash_flatten_fix.patch (2.04 KB)


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