Project

General

Profile

機能 #808

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

Added by rhen ium over 3 years ago. Updated over 3 years ago.

Status:
終了
Priority:
通常
Target version:
Start date:
2016-01-10
Due date:
% Done:

0%

プラグイン名:

Description

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 をそのまま削除しても正常に動作しているように見えます。

Associated revisions

Revision 93809101 (diff)
Added by toshi_a 初音 over 3 years ago

to_hash居とったんかワレェ!

History

#1

Updated by toshi_a 初音 over 3 years ago

  • Tracker changed from バグ to 機能
  • Status changed from 新規 to 実装待ち
  • Assignee set to toshi_a 初音
  • Target version set to 3.4

これは流石に経緯を覚えてないやつですね…。追加したのも2010年末ということだし、用途も不明なので消します。
一応サードパーティプラグインが使っている可能性がないこともないので、3.4で削除ということにします。

#2

Updated by toshi_a 初音 over 3 years ago

  • Status changed from 実装待ち to 終了

こちらでも問題ないと判断したので削除しました。問題自体は単純だったので齟齬もないと思うので、チケット終了しておきます。

Also available in: Atom PDF