Smart::Args::TypeTiny で optional にした引数は undef を素通しする

optional な引数に undef を渡してもチェックエラーにはしない設計になっていた。引数のキーが無ければ optional でないことをチェックしている。

キーがあれば値(の型)をチェックするものだと思いこんでいたので、やっぱりソースコードレビューは難しいなと落ち込んでいた。

 

Types::Standard - bundled set of built-in types for Type::Tiny - metacpan.orgには Maybe や Any や Optional があるから、厳しく取り締まりたいときはその辺を考慮するように拡張するとよさそう。