Mouse will become as strict as Moose

Mouse 0.51からエラーチェックをMooseと同じくらい厳しくする予定です。具体的には,以下の場面で警告や致命的エラーを出します。

  • has()に未知のオプションが渡されたとき警告
    • おそらく綴りミスであるため
  • has()によってアクセサが生成されず,かつ is => 'bare' も指定されていないとき警告
    • isの指定し忘れと見なす
  • has()にisaとdoesを両方指定して,$isa->does($does)が偽のとき致命的エラー
    • 内部実装の都合上,型制約は一つしか持てないため,一貫性を保たなければならない

これらはいずれもMooseと互換性があるため,Any::Mooseを使っている場合には特に問題はないかと思います。

またstrict constructorも導入しますが,これはMooseにも提案する予定です。

これらの変更の結果,MouseはMooseと同じくらい厳しくエラーチェックをするようになるため,MouseをMooseに切り替えることにより問題が出る可能性は少なくなるかと思います。

既にこれらの修正を加えた開発版を0.50_03としてリリースしていますので,ぜひお試しください。