From: Akinori MUSHA Date: 2010-06-02T12:46:07+09:00 Subject: [ruby-dev:41506] [Backport #3378] Range#each should not yield its `begin' itself チケット #3378 が更新されました。 (by Akinori MUSHA) Rangeの左端がStringの場合をspecial-caseして(b..e).each→b.upto(e)に変換するんですが、 1.9ではString#uptoが最初の引数をdupするようになったのでこうなっています。 つまりString#uptoの仕様が変わったということです。 RangeはFixnum, Symbol, String以外の場合は左端をdupしたりはしないので、 むしろ、1.9の挙動についてもう一度考えた方がよさそうです。 ・String#uptoがself.dupを返すようになったのは妥当か? ・Range#eachはすべて左端をdupしたものを渡すべきか? どっちにしても、今さら1.8.8で仕様を変えたい気がしないことは付け加えておきます…。 ---------------------------------------- http://redmine.ruby-lang.org/issues/show/3378 ---------------------------------------- http://redmine.ruby-lang.org