ruby-trunk-changes r62723 - r62727

今日は Module#prepend とメソッド可視性に関する変更やインデント除去つきヒアドキュメント内に式展開があった時の不具合修正などがありました。

nobu: r62723 2018-03-11 21:12:08 +0900

parse.y の here_document() という関数で複数の条件分岐内で共通の処理をしていたのを goto を使ってまとめるというリファクタリングをしています。

nobu: r62724 2018-03-11 21:19:08 +0900

インデント除去つきヒアドキュメントに #{} で式展開を含めた時に展開した文字列の中の空白にまでインデント除去が影響することがあった不具合を修正しています。 r62723 のリファクタリングはこの変更箇所をまとめるためだったんですね。 [ruby-core:85983] [Bug #14584]

nobu: r62725 2018-03-12 15:54:43 +0900

Module#prepend で上書きしたメソッドでメソッドの可視性の変更が無視されるようになっていた不具合を修正しています。うーん、これって prepend したメソッドで上書きしてると考えるとそっちの可視性が生きるという考え方もできそうな……。難しいですね。 https://github.com/ruby/ruby/pull/1834

svn: r62726 2018-03-12 15:54:44 +0900

version.h の日付更新。

nobu: r62727 2018-03-12 16:55:17 +0900

r62675 で古い bison 用に tSPACE というトークンを宣言するようにしていましたが、これによって ripper でエスケープされた空白の扱い? に不具合が出てきたようなので、 tSP という名前でトークン宣言するように変更しています。 ripper で既に tSP という定数が定義されていてそれと食い違ってしまったのが原因みたいだけど、よくわからず。 [ruby-core:86080] [Bug #14597]