宣布 Rust 1.34.1

2019 年 4 月 25 日 · Rust 发布团队

Rust 团队很高兴宣布 Rust 的新版本 1.34.1 和 rustup 的新版本 1.18.1。Rust 是一种编程语言,它使每个人都能构建可靠且高效的软件。

如果您之前已通过 rustup 安装了 Rust,那么获取 Rust 1.34.1 和 rustup 1.18.1 就像

$ rustup update stable

如果您还没有,您可以从我们网站上的相应页面 获取 rustup

1.34.1 稳定版中的新内容

此补丁版本修复了两个误报和 Clippy 中检查宏时的 panic。Clippy 是一个工具,它提供了一组 lint 来捕获常见错误并改进您的 Rust 代码。

clippy::redundant_closure 中的误报

redundant_closure lint 中的误报已 修复。该 lint 没有考虑到 借用数量的差异

在以下代码片段中,方法 required 期望 dep: &D,但 dep 的实际类型是 &&D

dependencies.iter().filter(|dep| dep.required());

Clippy 错误地建议使用 .filter(Dependency::required),但由于借用差异,编译器会拒绝此建议。

clippy::missing_const_for_fn 中的误报

missing_const_for_fn lint 中的另一个误报已 修复。该 lint 没有考虑到 trait 实现中的函数不能是 const fn。例如,当给出以下代码片段时,该 lint 会触发

#[derive(PartialEq, Eq)] // warning: this could be a const_fn
struct Point(isize, isize);

impl std::ops::Add for Point {
    type Output = Self;

    fn add(self, other: Self) -> Self { // warning: this could be a const_fn
        Point(self.0 + other.0, self.1 + other.1)
    }
}

rustup 1.18.1 中的新内容

最近的 rustup 版本 1.18.0 引入了 一个回归,它阻止了在旧平台上通过 shell 脚本安装 Rust。已发布了一个补丁来修复此问题,避免在不支持 TLS v1.2 的平台上强制使用 TLS v1.2。

您可以在其 完整发行说明 中查看其他 rustup 更改。