如何为单行/块禁用 clippy lint?

How to disable a clippy lint for a single line / block?

我得到一些像这样的 Clippy lints:

warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name
  --> src/helpers/mod.rs:29:32
   |
29 |     pub fn to_vec_sorted<U, F>(self, mapper: F) -> Vec<U>
   |                                ^^^^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention

我处理这个 lint 没问题,我只是选择了它,因为它没有显示任何专有代码。假设我有一个很好的理由需要以这种方式命名该函数,并且 Clippy 已集成到我的 CI 中,因此我需要 Clippy 错误/警告为零。

有没有办法为特定行或代码块禁用 Clippy lint ,类似于 Java 中的 @SuppressWarnings("whatever")?我觉得肯定有,但我在文档中找不到任何这样做的例子。

您可以允许或拒绝 lints 的 docs 状态。

#![allow(clippy::wrong_self_convention)] pub fn to_vec_sorted<U, F>(self, mapper: F) -> Vec<U>

而且,如果你想禁用 所有 其中的 1 个:

#![allow(clippy::all)] pub fn to_vec_sorted<U, F>(self, mapper: F) -> Vec<U>

1:clippy:all 实际上不允许 all lints,而是正确性、可疑性、风格、复杂性和性能所包含的所有内容。这意味着没有迂腐的、幼稚的或货物棉绒。