Shiika/return in block
Rubyではブロック内のreturnでメソッドを抜けることができる。
あまり意識してなかったけど、かなりユニークな気がしてきた(他の言語での実装例ある?)
Shiikaでもそうしようと思ったけど、予想よりだいぶ難しいことがわかった
問題
ブロックはコールバックの登録とかにも使われるので、そこでのreturnは静的にエラーにしたいが、その方法が思いつかない
Crystalにはこのためにcaptured blockという概念がある。def foo(&block) のblockはcapturedで、returnを使うためにはyieldを使って書かないといけない
僕yield嫌いなんだよねえ(シグネチャ見ただけでブロックを取るか判断できてほしいので)
実装について
例外を使う案など