推論型の確認
Rigorの解析はデフォルトでは不可視です——診断を報告するときだけ口を開きます。エンジンが式に割り当てた型を確認したいときは、2つのソースヘルパーと2つのCLIコマンドの4つのツールがあります。
dump_type — ソースから型を出力する
Section titled “dump_type — ソースから型を出力する”dump_type(expr)はRigorにinfo重要度のdump.type診断を発行させ、exprの推論型を表示します。実行時にはno-opでexprをそのまま返すため、デバッグ中に残したり自由に散りばめても安全です。
require "rigor/testing"include Rigor::Testing
dump_type(1 + 2) # rigor reports: dump.type — Constant<3>Rigorはコールがinclude Rigor::Testingの後にdump_type(…)として書かれている場合、または完全修飾のRigor::Testing.dump_type(…) / Rigor.dump_type(…)として書かれている場合に認識します。
assert_type — ソースで型を固定する
Section titled “assert_type — ソースで型を固定する”assert_type("TypeString", expr)はexprの推論型をリテラル型文字列と比較します。不一致の場合、Rigorはerror重要度のassert.type-mismatch診断を発行します。一致する場合は何も出力しません。dump_typeと同様に実行時はexprをそのまま返します。
assert_type("Constant<3>", 1 + 2) # silent — matchesassert_type("Integer", 1 + 2) # assert.type-mismatch型文字列はエンジンの短い表示形式と照合されます。assert_typeはハンドブックの例を正確に保つ方法であり、プロジェクト自身のテストソースに保持できるリグレッションチェックとしても機能します。
rigor annotate — マージンの型
Section titled “rigor annotate — マージンの型”rigor annotate FILEはファイル全体を再表示し、各行に評価する式の型を末尾の#=> dump_type:コメントとしてタグ付けします:
two = 1 + 1 #=> dump_type: 2name = gets #=> dump_type: String | nilファイルを概観する最速の方法です。アノテーションは冪等です——再実行すると前のコメントを積み重ねる代わりに置き換えます。ttyの場合は出力がシンタックスハイライトされます。--no-color(およびNO_COLOR環境変数)でカラーを無効化できます。
rigor type-of — 1つの位置
Section titled “rigor type-of — 1つの位置”1つの式の型だけが必要な場合——通常は診断が発火した/しなかった理由を追いかけているとき——単一位置をクエリします:
rigor type-of lib/example.rb:12:8--format=jsonはツール向けのマシン可読な結果を出力します。これはエディタ統合がホバー時に回答するのと同じクエリです。
| したいこと | 使うもの |
|---|---|
| シェルから一つの式の型を確認したい | rigor type-of |
| ファイルの全行を概観したい | rigor annotate |
| 解析途中にコンテキスト内で型を出力したい | dump_type |
| 型をアサートしてリグレッションチェックしたい | assert_type |
© 2026 TypedDuck. Licensed under CC BY-SA 4.0.