Clippy:弃用`feature = "cargo-clippy"`

原文链接

2024年2月28日 · Clippy团队

自从Clippy v0.0.97版本以及之前通过rustup提供以来,当使用cargo clippy对你的代码进行lint时,Clippy隐式地添加了一个feature = "cargo-clippy"配置。

回到那时(2016年),这是必要的,以允许、警告或拒绝Clippy lint使用属性:

rust 复制代码
#[cfg_attr(feature = "cargo-clippy", allow(clippy_lint_name))]

长时间以来,这样做已经不再必要。今天,Clippy用户将使用带有clippy::前缀的工具lint属性来设置lint级别:

rust 复制代码
#[allow(clippy::lint_name)]

隐式的feature = "cargo-clippy"仅为了向后兼容而保留,但将在即将到来的夜间构建中被弃用,并且之后在1.78.0版本中弃用。

替代方案 由于依赖Clippy的条件编译是一个罕见的用例,我们将提供一个替代方案。因此在未来(1.78.0版本)你将能够使用:

rust 复制代码
#[cfg(clippy)]

过渡 如果你只使用稳定的工具链,你可以等到Rust 1.78.0(2024-05-02)发布后再进行过渡。

如果你的代码库中有feature = "cargo-clippy"的实例,你将从最新的夜间构建Clippy中的新lint clippy::deprecated_clippy_cfg_attr看到一个警告。这个lint可以自动修复你的代码。因此,如果你看到这个lint触发,只需运行:

shell 复制代码
cargo clippy --fix -- -Aclippy::all -Wclippy::deprecated_clippy_cfg_attr

这将修复你代码中的所有实例。

此外,检查你的.cargo/config文件是否有:

toml 复制代码
[target.'cfg(feature = "cargo-clippy")']
rustflags = ["-Aclippy::..."]

如果你有这个配置,你将需要自己更新它,要么将其更改为cfg(clippy),要么利用这个机会直接在Cargo.toml中设置lint级别。

弃用的动机 目前,有一个测试的呼吁,为了稳定在编译时检查条件编译,即cargo check -Zcheck-cfg。如果我们保留feature = "cargo-clippy"配置,用户将开始在他们的feature = "cargo-clippy"条件上看到很多警告。为了解决这个问题,他们要么需要允许lint,要么必须在他们的Cargo.toml中添加一个虚拟特性来消除这些警告:

toml 复制代码
[features]
cargo-clippy = []

我们认为这不会对用户友好,因此决定弃用隐式的feature = "cargo-clippy"配置,并用clippy配置替换它。

你很可能甚至不知道Clippy隐式设置了这个配置(这不是一个Cargo特性)。这是有意的,因为我们很久以前就停止宣传和记录这个了。

相关推荐
明飞198714 小时前
tauri
rust
咚为17 小时前
Rust tokio:Task ≠ Thread:Tokio 调度模型中的“假并发”与真实代价
开发语言·后端·rust
天天进步201521 小时前
Motia性能进阶与未来:从现有源码推测 Rust 重构之路
开发语言·重构·rust
Hello.Reader2 天前
Rocket 0.5 响应体系Responder、流式输出、WebSocket 与 uri! 类型安全 URI
websocket·网络协议·安全·rust·rocket
FreeBuf_2 天前
黑客利用React Native CLI漏洞(CVE-2025-11953)在公开披露前部署Rust恶意软件
react native·react.js·rust
鸿乃江边鸟2 天前
Spark Datafusion Comet 向量化Rust Native--Native算子(CometNativeExec)怎么串联执行
大数据·rust·spark·native
mit6.8242 天前
[]try catch no | result yes
rust
Ivanqhz2 天前
向量化计算
开发语言·c++·后端·算法·支持向量机·rust
mit6.8242 天前
rust等于C++的最佳实践
rust
初恋叫萱萱3 天前
基于 Rust 与 DeepSeek 构建高性能 Text-to-SQL 数据库代理服务
数据库·sql·rust