ruby-trunk-changes r62898 - r62902

今日は主に rescue 節がないのに else 節を使っているのを SyntaxError にする変更などがありました。

kazu: r62898 2018-03-22 22:01:17 +0900

sample/timeout.rb で Integer#times のブロック内でインデックスを無駄にインクリメントしていたのを消しています。

nobu: r62899 2018-03-23 01:05:04 +0900

Exception#full_message のテストで Exception.to_tty? をみてハイライトやバックトレースの順序のテストを入れ替えるようにしています。なるほどテスト用か。

svn: r62900 2018-03-23 01:05:05 +0900

version.h の日付更新。

nobu: r62901 2018-03-23 09:40:08 +0900

begin ... rescue ... else ... end のように else 節を書くと例外発生しなかった時だけ else 節が実行されるという仕様がありますが、rescue がないのに else だけあるのは意味がないため、そのような記法を文法エラーにするという変更をしています。元々警告は出してたみたいですね。




nobu: r62902 2018-03-23 10:09:57 +0900

62901 の続き。 parse.y の bodystmt で opt_else という省略可能な else 節のルールを参照していたのを、直接 k_else トークンを参照して rescue がなかった時はエラーにするようにルール部を書き変えています。