From: glass.saga@... Date: 2014-02-20T01:59:09+00:00 Subject: [ruby-dev:47991] [ruby-trunk - Bug #9533] [Assigned] ruby 2.1.0のHash#flattenが以前のバージョンと異なる挙動をする Issue #9533 has been updated by Masaki Matsushita. Category set to core Status changed from Open to Assigned Assignee set to Masaki Matsushita Target version set to current: 2.2.0 ruby -v changed from ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux] to ruby 2.2.0dev (2014-02-19 trunk 45047) [x86_64-linux] Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN to 1.9.3: DONTNEED, 2.0.0: DONTNEED, 2.1: REQUIRED ---------------------------------------- Bug #9533: ruby 2.1.0のHash#flattenが以前のバージョンと異なる挙動をする https://bugs.ruby-lang.org/issues/9533#change-45291 * Author: Takeshi Sasaki * Status: Assigned * Priority: Normal * Assignee: Masaki Matsushita * Category: core * Target version: current: 2.2.0 * ruby -v: ruby 2.2.0dev (2014-02-19 trunk 45047) [x86_64-linux] * Backport: 1.9.3: DONTNEED, 2.0.0: DONTNEED, 2.1: REQUIRED ---------------------------------------- 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/