如何让Cargo Clippy忽略Prost生成的Rust文件
让Cargo Clippy忽略Prost生成的Rust文件
初始尝试未生效
用Prost生成Protobuf对应的Rust类后,想让Clippy跳过对这些生成文件的检查,在lib.rs中编写了以下代码:
pub mod modes { #[allow(clippy)] include!(concat!(env!("OUT_DIR"), "/modes.rs")); } #[allow(clippy)] pub mod vehicle_features { include!(concat!(env!("OUT_DIR"), "/vehicle_features.rs")); }
但Clippy仍会输出生成文件的警告。
修改后仅部分场景有效
调整为模块级别的属性配置后:
pub mod modes { #![allow(clippy::all)] include!(concat!(env!("OUT_DIR"), "/modes.rs")); } pub mod vehicle_features { #![allow(clippy::all)] include!(concat!(env!("OUT_DIR"), "/vehicle_features.rs")); }
运行cargo clippy时配置生效,但执行cargo clippy -- -W unwrap_used时,生成文件的警告依然会出现。
问题原因及最终解决方案
clippy::all并非覆盖所有Clippy规则,它仅包含correctness、suspicious、style、complexity、cargo和perf类别下的规则,不包含pedantic或nursery类别规则。
要让所有场景下Clippy都忽略生成文件,需要在模块内添加对这两个类别的允许规则:
pub mod modes { #![allow(clippy::all, clippy::pedantic, clippy::nursery)] include!(concat!(env!("OUT_DIR"), "/modes.rs")); } pub mod vehicle_features { #![allow(clippy::all, clippy::pedantic, clippy::nursery)] include!(concat!(env!("OUT_DIR"), "/vehicle_features.rs")); }
内容的提问来源于stack exchange,提问作者Connor
相关产品推荐
相关产品推荐

