Help us understand the problem. What is going on with this article?

Ruby の型関連の情報まとめ

2020年にリリースが予定されている Ruby のバージョン3から型定義・静的解析ができるようになる予定なので、現時点(2020年2月12日)の情報をまとめてみる。

用語一言解説

  • 型シグネチャ:型定義ファイル
  • 型プロファイラ:型シグネチャを使わない静的解析 + 型シグネチャのプロトタイプ生成
  • 型検査器:型シグネチャを用いた静的型検査ツール

型シグネチャ

  • 型情報を定義したファイル
    • Ruby3 では Ruby ソースコード本体に型情報を書かない
    • 拡張子は .rbs
    • ⇨記述のための言語は Ruby ではない
  • 型シグネチャをもとに後述の型検査を実行する
  • Ruby3 に同梱される

レポジトリ

ruby-signature: https://github.com/ruby/ruby-signature

型プロファイラ

  • 型シグネチャ無しで型検査する(レベル1型検査)
  • 型エラーの可能性を指摘
  • 型の推論結果を用いて型シグネチャのプロトタイプを生成する
  • 型プロファイラも Ruby3 本体に同梱される予定

レポジトリ

ruby-type-profiler: https://github.com/mame/ruby-type-profiler

型検査器

  • 型シグネチャを使って静的検査をする(レベル2型検査)
  • 高速化は目的としておらず、エラーなどを実行前に発見することが目的
  • こちらは Ruby3 には同梱されず、各々 gem をインストールして使うことになる

レポジトリ

steep: https://github.com/soutaro/steep
sorbet: https://github.com/sorbet/sorbet

参考資料

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした