MEP 23: result_u8などをresultに
- Created: 2025-06-19 12:17:00
- Status: Proposed
モチベーション
現状は result_u8、result_u16などのように、BPPに合わせたsuffixをつけることになっている。 だがresultは必ず最後のexpressionの型でどの型なのかがわかるので、これは不要なのでは無いか。
inputは原理的に必須なのでsuffixで指定するのは正しいように思うが、resultは無しで良いかもしれない。
これは8bitレイヤーなどを新たにサポートする時に、パーサーのコードの変更が少なくて済む。 また、おそらく8bitレイヤーは result_u8v1 などのような長い名前になってしまっていまいちなので、出来たら記述無しにしてしまいたい気もする。
提案
result_u8 と result_u16 を result に変更したい。
メリット
不要な記述がなくなるので簡潔になる。
また、パーサーの場合分けが減るのでコードもシンプルになる。
新しい種類を追加する時にもパーサーに与える影響が少ないので拡張性に富む。
しかし、例えば8bitレイヤーの記述方法を考えなくて済むという事は無い。inputの方でどちらにせよ必要になるので。
デメリット
inputとの対称性が無くなる。input_u8 なのに result_u8 では無いのか?など。
現在どの型がサポートされているかが調べにくくなるかもしれない。
result_u8 と result_u16 に相当する概念があるけれどコード上にあらわに出てこなくなるので、 学習時に分かりにくい可能性がある。
互換性への影響
当面は result_u8 と result_u16 はdeprecatedとしつつサポートを続ける必要はある。