如何防止 Cargo Clippy 分析生成的 Prost 文件

Con*_*nor 2 rust prost rust-clippy

我正在使用 prost 为 protobuf 生成 Rust 类。我希望 Clippy 忽略这些生成的文件,但我无法弄清楚如何让 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"));
}
Run Code Online (Sandbox Code Playgroud)

但是,我仍然收到 models.rs 和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"));
}
Run Code Online (Sandbox Code Playgroud)

这在跑步时有效cargo clippy,但在跑步时不起作用cargo clippy -- -W unwrap_used有人知道为什么吗?当我向 Clippy 添加额外的警告参数时,如何使其工作?

编辑2:

我在这里找到了答案:How to disable a Clippy lint for a single line / block?

“clippy:all 实际上并不允许所有 lints,而是允许正确性、可疑性、风格、复杂性、cargo 和 perf 包含的所有内容。这意味着没有迂腐或幼稚的 lints..”

所以我必须添加 #![allow(clippy::all, clippy::pedantic, clippy::nursery)]

Cha*_*man 5

你需要允许clippy::all. #[allow(clippy::all)]模块外部或#![allow(clippy::all)]内部。

  • @Connor我真的不知道,但我想更具体的警告优先于通用的“clippy::all”,或者命令行优先于源代码。 (2认同)