2017-12-25 (Mon) [長年日記]
_ Ruby 2.5.0へのアップグレード
Ruby 2.5.0がリリースされたので、この日記をRuby 2.5.0にアップグレードした。
今のところtDiaryの動作はとくに問題なさそうだが、2.5.0のバグっぽい挙動を見つけてしまったような……。
_ モジュールのrefineのバグ
モジュールをrefineした際のバグをいくつか直したつもりだったが、以下のケースでusing D
していないのにrefineしただけで挙動が変わってしまうようだ。
module A def foo puts "A#foo" super end end class B def foo puts "B#foo" end end class C < B include A def foo puts "C#foo" super end end module D refine A do def foo end end end C.new.foo
using D
した時にsuperでBを辿れないのは仕方ないかなと思っていたのだが、using D
してないのにこうなるのはちょっとまずい……。
とりあえず、Bug #14232として登録しておいた。