2020-04-07: なんかめっちゃ疲れてる気がする
やったこと
疲労感
疲れすぎてヤバい。
休まねば‥‥。
Crystal
0.34.0が出ていた。
exhaustiveness checkが入ったね。
色々あってヤバいマクロを使って再帰的な型を探索する仕組みを生み出した。
コンパイル時間への影響が大きいかと思ったけど、案外そこまででもなかった。
問題はこのマクロを受け入れてくれるかだなぁ。
ぶっちゃけJSON::Serializeとかの方が複雑だしヤバいと思うんだけど。
https://github.com/crystal-lang/crystal/pull/9000#issuecomment-610201699
と思ったけど、サブクラスを取りに行ってるのが問題になるっぽい。確かに。
もうちょい簡単に実装できるならデフォルトで押し切る方向に切ってもいいかな、と思ってたけど、これだと厳しいし、外出しのshardsで包むと再帰的な場合でも対応できる、みたいな型を作るのもアリかなぁ、という気持ちになっている。