2017-06-27: Crystalのフォーマッタとか
やったこと
#4627
これ自体はどうやって直せばいいか分かってたので直しておいた。
a = 1
case
when 2
else
a /= 3
end
のときに、elseを処理するところで、/=の前のaが@tokenになっているところでslash_is_regex!を呼んでからnext_tokenするから、そりゃ/の扱いがおかしくなるよなぁ、っていう。そもそもelseの中身を処理するformat_nestedでskip_space_or_newlineしてるから、その前でそれをする必要は無いはずなので、それを消して修正完了、のはず。
ただ、問題は次のissue。
#4626
1 # foo
/ /
みたいなコードがcrystal tool formatでエラーになるやつ。これはskip_spaceがコメントの後ろの改行までスキップしてしまうことが原因、なんだけど困ったことにフォーマッタの実装がこの挙動に地味に依存してて、上手く直せる気がしない。
普通にクリティカルなバグだと思うので直したいんだけど、直る気がしない。しんどい。