30秒で判断
- 対応すべき人: Rust を使用している開発者全般。特に
InfallibleやUninhabitedを Error 型として使用しているコードベース、バイナリクレートで公開 API を定義しているプロジェクト - 対応不要な人: Rust を使用していないプロジェクト。breaking change はないため既存コードへの影響なし
- 確認コマンド:
rustc --version
この変更が意味すること
Rust 1.97.0 は 2026年7月9日にリリースされたマイナーバージョンです。型システムの精緻化と開発体験の向上を中心とした安定化が複数含まれています。
最も注目すべきは Result<T, Uninhabited> と ControlFlow<Uninhabited, T> が must_use lint の観点から T と等価に扱われるようになった点です。エラーが絶対に発生しない型を返す関数の呼び出しコードで、これまで不要だった警告が出なくなり、コードがよりクリーンになります。
バイナリクレート向けに dead_code_pub_in_binary lint が追加されました。ライブラリとバイナリを混在させたクレートで、実際には使われていない pub 宣言を検出するのに役立ちます。
主な変更点
Result<T, Uninhabited> / ControlFlow<Uninhabited, T> の T 等価化
Infallible(または !)を Error 型として使用した場合、その Result は事実上失敗しないにもかかわらず must_use lint が警告を出していました。1.97.0 からはこれらの型が T 相当として扱われるため、余分な .unwrap() や let _ = が不要になります(PR #148214)。
dead_code_pub_in_binary lint 追加
バイナリクレートで pub と宣言されているにもかかわらず使用されていないアイテムを検出する lint です。デフォルトでは allow ですが、#[warn(dead_code_pub_in_binary)] や #[deny(...)] で有効化できます(PR #149509)。
ターゲット機能の安定化
div32、lam-bh、lamcas、ld-seq-sa、scq— 各アーキテクチャ固有命令のサポートが安定版へ(PR #154510)cfg(target_has_atomic_primitive_alignment)— アトミック操作のプリミティブアライメント確認がコンパイル時に可能に(PR #155006)
インポートでの末尾 self 拡張
use path::to::module::{self} の書き方がより多くのコンテキストで受け入れられるようになりました(PR #155137)。
プラットフォームサポート変更
nvptx64-nvidia-cuda ターゲットで古いアーキテクチャ(旧 GPU ISA)のサポートが削除されました。CUDA 開発者はターゲットアーキテクチャを確認してください。
EOL / サポート状況
Rust は rolling-release モデルのため、最新の stable が推奨バージョンです。
| サイクル | ステータス | リリース日 |
|---|---|---|
| 1.97 | ✅ 現行 stable | 2026-07-09 |
| 1.96 | 旧バージョン | 2026-05-28(EOL: 1.97リリースと同時) |
| 1.95 | ❌ EOL | 2026-04-16 |
| 1.94 | ❌ EOL | 2026-03-06 |
開発者への影響
Result<T, Infallible>を返す関数の戻り値を無視していたコードで余分な警告が解消される- バイナリクレートのコード品質向上に
dead_code_pub_in_binarylint を活用できる - breaking change なし — 既存コードはそのまま動作
アップデート方法
rustup update stable
rustc --version # rustc 1.97.0 になることを確認
データソース: GitHub Releases API, endoflife.date
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
