Rustにリファインメント型を追加するには?:実現可能性調査
2024-12-24
この記事では、Rustプログラミング言語にリファインメント型を追加する実現可能性を探ります。単位の測定値をチェックするためにリファインメント型を使った静的アナライザーYAIOUOMの経験に基づき、Rustの型システム内でリファインメント型を実装するためのアプローチを検討します。トレイト解決の変更、型変数の統一、コンパイル後の型チェックのためのプラグ可能なキーワードメカニズムの導入など、いくつかの選択肢が提案されています。コンパイルの初期段階で単位情報を無視し、後でチェックするという楽観的なアプローチがより現実的と考えられています。API設計とエラーメッセージの処理についても議論されています。今後の作業には、フィードバックの収集、プラグインをサポートするrustcドライバの作成、FluxやLiquid Haskellのサブセットなどを含むいくつかのリファインメント型の実装が含まれます。