プロジェクト

全般

プロフィール

機能 #808

完了

Enumerable#to_hash を定義しないようにする

rhen ium さんがほぼ9年前に追加. ほぼ9年前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2016-01-10
期日:
進捗率:

0%

プラグイン名:

説明

core/utils.rb で Enumerable#to_hash が定義されているため、Ruby 2.2 以降でオプション引数とキーワード引数を組み合わせた以下のコードが奇妙な挙動をします。

def test(x = 1, y: 2)
  p x
end

test(["abc"]) # => {"a"=>"b"}

(この影響で Ruby 2.4.0dev で mikutter が起動しなくなりました(OptionParser#parse! がキーワード引数を受け付けるようになった))

るりまによると暗黙的に変換されても構わない場合のみ定義するべきだそうなので、Enumerable#to_hash は削除するべきだと思います。
http://docs.ruby-lang.org/ja/2.3.0/method/Object/i/to_hash.html

とりあえず、私の環境では Enumerable#to_hash をそのまま削除しても正常に動作しているように見えます。

他の形式にエクスポート: Atom PDF