今日はキーワードrest引数のSymbol以外のキーに対する挙動の変更や不正な正規表現リテラルのオプションのエラー表示の強化などがありました。
nobu: r67216 2019-03-11 21:47:02 +0900
parse.y の block_param というノードのアクション部のブロックで宣言されてた excessed_comma という変数を トップレベルに移動しています。
mame: r67217 2019-03-11 21:48:33 +0900
r64358 で 2.6 以降キーワード引数を **kw のように Hash に受け取る時にキーに Symbol とそれ以外のオブジェクトを混ぜて受け取るのは禁止されるようになっていましたが、これを revert して再度受付けるようにしています。3.0 でのキーワード引数の仕様変更に向けて現状の仕様だとうまく migration できるような中間的な書きかたができないため。 [ruby-core:91779] [Bug #15658]
svn: r67218 2019-03-11 21:48:34 +0900
r67217 のインデントのタブを空白に展開。
naruse: r67221 2019-03-11 22:00:31 +0900
r67217 で NEWS ファイルの profiler 削除についてのエントリも削除してたので revert しています。
nobu: r67224 2019-03-12 13:11:41 +0900
parser_yyerror() と parser_compile_error() で return 前に token_flush() を追加しています。 parser_yyerror() は(ripper ではない時に)先頭でも呼んでますね。エラー位置の表示の修正かな。
svn: r67225 2019-03-12 13:11:51 +0900
version.h の日付更新。
nobu: r67226 2019-03-12 13:23:17 +0900
parse.y の正規表現リテラルの最後につく /foo/i の i みたいなオプションを処理する regx_options() で未知のオプションが付いていた時の SyntaxError のメッセージにその正規表現と、未知のオプション部分の位置の表示をするようにしています。