RBS::Environment#inspect
が長すぎてつらいことが何度かあったので、短くしてみた。
RBSでは定数の名前解決のときに、継承関係を考慮しない。
Note that the type name resolution does not refer inheritance and includes.
つまり次のようになる。
class C module M end end class C2 < C # Could not find mixin: M include M end class C3 # Could not find mixin: C2::M include C2::M end
これは、Active Supportの型を出す時に::Logger::Severity
をinclude
するのに、::Logger
を継承した::ActiveSupport::Logger::Severity
をincludeしようとしていてハマった。
とりあえずActive Supportだけ対応して、Active Modelの型はさよならした。
rbs prototype rb
の機能不足を感じたので、なんとかする。
Active Supportの型を生成している時に、Rubyのバージョンごとに違う中身でメソッドを定義しているようなコードで型が2重に出て面倒だったので、rbs prototype rb
の方を直した。