ruby-trunk-changes r63167 - r63181

今日は誤って SyntaxError になることがあった文法の不具合修正やテストの整理などがありました。

nobu: r63167 2018-04-16 21:46:08 +0900

r63113 の ISeq のバイナリフォーマットへのダンプ時のアライメントの調整が struct ibf_object_struct_range のダンプ時に漏れてたので追加しています。 [ruby-core:86548] [Bug #14689]

nobu: r63168 2018-04-17 10:22:26 +0900

メソッド引数のかっこのあとに波かっこでブロックが始まる文法で、そのブロック内にさらに do...end のブロックが存在していると SyntaxError になる不具合を修正しています。波かっこがある時に CMDARG_POP()/CMDARG_PUSH() でスタックの調整が必要だったみたいです。 [ruby-core:86551] [Bug #14690]

svn: r63169 2018-04-17 10:22:27 +0900

version.h の日付更新。

nobu: r63170 2018-04-17 13:12:57 +0900

r63164 の String#undump の変更で文字列リテラル内のかっこ? クオート? が閉じられてないのが VC で警告が出てしまうみたいで、コメント対応する閉じかっことダブルクオートを書いておくようにしています。うーむまぎらわしい。

mame: r63171 2018-04-17 15:38:08 +0900

zlib のテストで Zlib::GzipReader.new にブロックを渡して呼び出されるのを前提としたテストがありましたが、Zlib::GzipReader.new は Kernel#open みたいにブロックを呼び出さないので assertion が実行されていなかったというのを修正しています。あー、ブロック呼び出すと思ったら呼び出してくれなかったというのは Ruby あるあるですね…。

mame: r63172 2018-04-17 16:03:44 +0900

r63171 と同様に csv のテストでも CSV.new にブロックを渡していましたが、このブロックも呼び出されないのでブロックを使わない書きかたにしています。

mame: r63173 2018-04-17 17:18:56 +0900

date のテスト test/date/test_date_base.rb をファイルごと削除しています。このテストは calendar.so という拡張ライブラリに依存しているため今は実行されていませんでした。calendar.so なんとなくかすかな記憶があるような…と思ったら r31478 の時にもコメントしてました。ついに消されたんですね。

mame: r63174 2018-04-17 17:18:57 +0900

空の配列の each, each_index のブロックや拡張ライブラリ gdbm の GDBM.open が重複した open のためブロックするのを確認するテストでの GDBM.open に渡されたブロックなど、実行されないことが期待されるブロックの assertion を assert(false) にして呼ばれないことを確認する assertion に変更しています。

mame: r63175 2018-04-17 17:18:58 +0900

Array や Module のテストで 1.8 から 1.9 の仕様変更でコメントアウトされていた assertion を削除しています。

mame: r63176 2018-04-17 17:26:19 +0900

Object#instance_eval のテストで例外が発生するため実行されない返り値をチェックしている assert_equal を削除しています。

mame: r63177 2018-04-17 17:26:20 +0900

a, *b, c = ... のような代入が未サポートの時にコメントアウトされた状態で追加されていた assertion をコメントをはずして実行するようにしています。

mame: r63178 2018-04-17 17:47:56 +0900

1.9 から 2.0 の仕様変更でコメントアウトされたテストを削除しています。

mame: r63179 2018-04-17 17:47:56 +0900

TracePoint#raised_exception のテストでブロック内には event=:raise の時のチェックもあったのに TracePoint.new の引数に :raise が含まれてなかったので実際には実行されていなかったのを修正しています。これによりチェック方法が間違ってたのも判明したようなのでそれも修正しています。

mame: r63180 2018-04-17 17:47:58 +0900

TracePoint#inspect のテストでフックを呼び出した Thread のチェックも追加しています。

mame: r63181 2018-04-17 17:52:25 +0900

super のテストで例外が発生するため実行されない assertion を削除しています。