T.absurdが書いてあると下記のように処理の記述漏れがある場合には型エラーになります。
class Hoge < T::Enum
extend T::Sig
enums do
A = new
B = new
C = new
end
def to_s
case self
when A then 'a'
when B then 'b'
else
T.absurd(self) # Cが処理されてないのでエラーとなる
end
end
end
網羅的な分岐(主にenumの処理)を行うときはT.abusrd使いましょう。
Top comments (0)