Rust 1.100リリース、never型がついに安定化
原題: Rust 1.100
なぜ重要か
never型の安定化はRustの型システムの完成度を大きく高め、エラーハンドリングAPIの設計に直接影響する。システムプログラミング分野での採用拡大に寄与する可能性が高い。
Rust開発チームは2026年11月12日、Rust 1.100.0を公開した。10年・5回の安定化試みを経てnever型(!)が正式に安定化されたほか、Allocator API、DropGuard API、Cargoの未使用依存関係レポート機能なども追加された。rustupユーザーは`rustup update stable`で即時更新できる。
Rust 1.100.0の最大の目玉は、never型(!)の安定化だ。never型は「絶対に値を返さない計算」を表す型であり、`return`や`break`、`std::process::exit`などの制御フロー終了式がこの型を持つ。10年以上の議論と5回の安定化失敗を経て、今回ようやく正式リリースに至った。
これまでも関数の戻り値として`-> !`と書くことはできたが、今回からは`Result<T, !>`のようにあらゆる場所でnever型を明示的に使えるようになった。また、既存の`Infallible`型がnever型のエイリアスに変更されたため、`Infallible`を使っていた従来のAPIとの互換性も確保される。ただし2015・2018・2021エディションでは「never type fallback」が`()`から`!`に変更される破壊的変更が含まれる。影響は限定的とされているが、依存クレートが壊れた場合はアップデートを確認することが推奨されている。
次に注目されるのがAllocator APIの安定化だ。`Allocator`トレイトを通じて、`Vec`や`Box`でカスタムアロケータを利用できるようになる。これは「Allocators 1.0」プロジェクト目標の基盤となるものの、今回は「コア部分」の安定化にとどまり、実装はまだ続く。
そのほかDropGuard API、ゼロサイズ型の生成補助機能、Cargoの未使用依存関係の警告機能、Cargoキャッシュ衝突の削減、`min-publish-age`オプションなども追加された。