用途:该技能是 Rust Edition 2024(随 Rust 1.85.0 于 2025-02-20 稳定)的权威参考,用于把 crate 从 edition 2021 迁移到 2024,或直接编写 edition 2024 代码。它把 edition 2024 作为基线,要求除演示迁移差异外不使用 2024 之前的写法。
主要能力:梳理 13 项语言变更,包括 RPIT 默认捕获所有在作用域内的生命周期与泛型、never-type 回退由 () 改为 !、必须写 unsafe extern "C" { ... }、属性需写成 #[unsafe(no_mangle)] 等、unsafe fn 体内 unsafe 操作需单独 unsafe { ... } 块、if let scrutinee 在进入 else 前释放、尾表达式临时值先于局部变量释放、static mut 引用默认 deny、expr 片段匹配范围变化、gen 成为保留关键字、prelude 新增 Future 与 IntoFuture 等。同时给出每项变更是否有自动修复及对应 lint 名称。
使用方式:迁移前要求工作区干净且 edition 2021 下用 rustc 1.85+ 编译通过;随后运行 cargo fix --edition,审查 diff,在 Cargo.toml 中把 edition 改为 "2024"(工作区根可选设 resolver = "3"),再执行 cargo build、cargo test、cargo clippy --all-targets,并人工检查 tail_expr_drop_order 与 static_mut_refs 等无自动修复项。
适用场景与限制:适用于 Rust 库与应用迁移、FFI 绑定、unsafe 代码审查。注意 edition 是 per-crate 属性,工作区可混用 2021 与 2024;static_mut_refs 与 tail_expr_drop_order 无自动修复,必须人工重构;gen 块本身仍不稳定。具体价格、平台支持等信息暂未提供。