宣布 Rust 1.92.0

发布: (2025年12月11日 GMT+8 08:00)
4 min read
原文: Rust Blog

Source: Rust Blog

Rust 1.92.0 已发布

Rust 团队很高兴宣布 Rust 的新版本 1.92.0。Rust 是一种让每个人都能构建可靠且高效软件的编程语言。

如果你之前是通过 rustup 安装的 Rust,可以使用以下命令获取 1.92.0:

rustup update stable

如果你还没有安装,可以从我们网站的相应页面获取 rustup,并查看 1.92.0 的详细发行说明

如果你想通过测试未来的发行版来帮助我们,考虑在本地切换到 beta 通道(rustup default beta)或 nightly 通道(rustup default nightly)。请报告你遇到的任何 bug!

1.92.0 稳定版的内容

默认拒绝的 never 类型 lint

语言和编译器团队继续推进对never 类型的稳定化工作。在本次发布中,never_type_fallback_flowing_into_unsafedependency_on_unit_never_type_fallback 这两个未来兼容性 lint 被设为默认拒绝(deny‑by‑default),这意味着检测到时会导致编译错误。

这些 lint 仍然可以通过 #[allow] 关闭,并且仅在直接构建受影响的 crate 时触发(作为依赖构建时不会触发,尽管 Cargo 会给出警告)。大约有 500 个 crate 受影响。更多理由请参见语言团队的评估

unused_must_use 不再对 Result 发出警告

unused_must_use lint 会在忽略带有 #[must_use] 的结果时给出警告。现在它会忽略 Result(例如 Result)和 ControlFlow,避免对永远不会出现的错误发出警告。

use core::convert::Infallible;

fn can_never_fail() -> Result {
    // …
    Ok(())
}

fn main() {
    can_never_fail(); // No warning
}

在错误类型有时可能是不可失败的 trait 中非常有用:

trait UsesAssocErrorType {
    type Error;
    fn method(&self) -> Result;
}

struct CannotFail;
impl UsesAssocErrorType for CannotFail {
    type Error = core::convert::Infallible;
    fn method(&self) -> Result {
        Ok(())
    }
}

struct CanFail;
impl UsesAssocErrorType for CanFail {
    type Error = std::io::Error;
    fn method(&self) -> Result {
        Err(std::io::Error::other("something went wrong"))
    }
}

fn main() {
    CannotFail.method(); // No warning
    CanFail.method();    // Warning: unused `Result` that must be used
}

在 Linux 上即使启用了 -Cpanic=abort 仍生成 unwind 表

之前,在 Rust 1.23 之后,使用 -Cpanic=abort 时回溯会失效。一个变通办法(-Cforce-unwind-tables=yes)在 1.45 中被稳定。现在在 Rust 1.92 中,即使指定了 -Cpanic=abort,也会默认生成 unwind 表。若想关闭它们,请使用 -Cforce-unwind-tables=no

验证 #[macro_export] 的输入

编译器现在对 macro_export 允许的参数进行更严格的检查,并升级为“默认拒绝的 lint”,该 lint 也会在依赖中报告。详情请参见相关 PR。

稳定的 API

常量‑稳定的 API

以下先前已稳定的 API 现在在 const 环境中也可用:

其他更改

  • Rust 1.92.0 完整变更日志:
  • Cargo 1.92.0 变更日志:
  • Clippy 1.92.0 变更日志:

1.92.0 的贡献者

许多人齐心协力才完成了 Rust 1.92.0。没有大家我们做不到。谢谢!

Back to Blog

相关文章

阅读更多 »