Steepでuntyped
な値をyieldするメソッドに暗黙的なto_proc
呼び出しの構文でシンボルを渡しているとエラーになってしまっていたので修正した。
Steepでa
がuntyped
の時、a || b
がbool
になってしまっていたのを直した。
Steepでretry
がblockの外にあるとエラーになってしまっていたので直した。
rbs prototype rb
がendless method defでコケることがあるのを直した。
このパッチダサいので3.0.1で消したい…
rbs prototype runtime
でクラス定義をネストした形で定義したいなーと思って、とりあえずIssueを書いた。
gemに型を付けるの体験しておこうかなーと思ってmatoに型をつけていた。 https://github.com/bitjourney/mato
今日のPull Requestはだいたいこれをやっている途中で見つけたもの。
雑に型をつけていって、こんな感じにカバーできた。retry
の件以外は型エラーも出ていない。
$ steep stats --log-level=fatal | column -s, -t Target File Status Typed calls Untyped calls All calls Typed % lib lib/mato/anchor_builder.rb success 18 2 20 90.00 lib lib/mato/concerns/html_node_checkable.rb success 2 2 4 50.00 lib lib/mato/config.rb success 27 6 33 81.82 lib lib/mato/converter.rb success 26 27 53 49.06 lib lib/mato/document.rb success 19 8 27 70.37 lib lib/mato/html_filters/bare_inline_element.rb success 10 0 10 100.00 lib lib/mato/html_filters/mention_link.rb success 32 0 32 100.00 lib lib/mato/html_filters/sanitization.rb success 2 1 3 66.67 lib lib/mato/html_filters/section_anchor.rb success 9 0 9 100.00 lib lib/mato/html_filters/syntax_highlight.rb success 29 28 57 50.88 lib lib/mato/html_filters/task_list.rb success 26 6 32 81.25 lib lib/mato/html_filters/token_link.rb success 12 0 12 100.00 lib lib/mato/processor.rb success 18 24 42 42.86 lib lib/mato/renderers/html_renderer.rb success 1 0 1 100.00 lib lib/mato/renderers/html_toc_renderer.rb success 30 17 47 63.83 lib lib/mato/rescue.rb success 4 2 6 66.67 lib lib/mato/timeout.rb success 8 4 12 66.67 lib lib/mato/version.rb success 0 0 0 0 lib lib/mato.rb success 16 0 16 100.00
差分はこんな感じ。
https://github.com/bitjourney/mato/compare/master...pocke:type
rbs prototype runtime
でMato自身とNokogiriの型をとりあえず生成した後、エラーが出るところを直したりuntypedをつぶしたりしていた。
mato内のコードのカバレッジを上げることを目標に型を書いていたのだけど、よく考えたら外部から使うインターフェイスの型を書いていないとあまり意味が無いよなあ。 ということでもうちょっとその辺整理したら取り込もうかな。
副次的に微妙に型を書いたnokogiri.rbsができたのだけど、これはgem_rbsに突っ込もうかなあ。しかし完成度は微妙。
そういえばどうでも良いのだけどmatoの発音は「まと」じゃなくて「めいと」だと聞いたことがあったような無いような気がする。
ゆるゆり19巻読み終わった。というか1巻から読み直して19巻に到達した。
ホラーじゃん