rubyのリポジトリでmake helpするとhelpが出るということをk0kubunさんに教えてもらった。便利。
そして、make cheatsheetの存在をmameさんに教えてもらった。便利。 https://github.com/ruby/ruby/blob/master/doc/make_cheatsheet.md
DelegateClassで作られたクラスを継承したクラスでinstance_methodsやinstance_methodがうまく動かない問題を直した。
むずかしかった。
rbs prototype runtimeではメソッドの戻り値がリテラルただ1つだけの時にそれっぽい型を吐くようになっていたのだけど、文が複数あると無条件でuntypedになっていた。
# どう見てもこれはStringを返すメソッドだけど、 # 生成される型定義では戻り値がuntypedになってしまう。 def foo something "foo" end
これは比較的簡単に直せることに気がついたので、直した。
具体的には、return文に渡る式とメソッド本文の最後の文のunion typeが返るようにした。
RBSで_foo?やin?のようなメソッド名がsyntax errorになっていたので直した。
_foo?はinterface名 + ?がメソッド名になれていなかったこと、in?はキーワード+?がメソッド名になれていなかったことが原因だった。
Active Supportの型を生成して、rbs validateが通るところまで持っていった。
hash.rbsの定義が悪いっぽくて、Enumerableのextensionが作れないっぽいのでIssueを立てた。