2020年にリリースが予定されている Ruby のバージョン3から型定義・静的解析ができるようになる予定なので、現時点(2020年9月30日)の情報をまとめてみる。
型シグネチャ
- 型情報を定義したファイル
- Ruby3 では Ruby ソースコード本体に型情報を書かない
- 拡張子は
.rbs
- ⇨記述のための言語は Ruby ではない
- 型シグネチャをもとに後述の型検査を実行する
- Ruby3 に同梱される
リポジトリ
RBS: https://github.com/ruby/rbs
型プロファイラ
- 型シグネチャ無しで型検査する(レベル1型検査)
- 型エラーの可能性を指摘
- 型の推論結果を用いて型シグネチャのプロトタイプを生成する
- 型プロファイラも Ruby3 本体に同梱される
リポジトリ
TypeProf: https://github.com/ruby/typeprof/blob/master/doc/doc.ja.md
型検査器
- 型シグネチャを使って静的検査をする(レベル2型検査)
- 高速化は目的としておらず、エラーなどを実行前に発見することが目的
- こちらは Ruby3 には同梱されず、各々 gem をインストールして使うことになる
リポジトリ
steep: https://github.com/soutaro/steep
sorbet: https://github.com/sorbet/sorbet