rust 检查是否存在过时的裁剪余量

ryevplcw  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(181)

有时候,您想暂时隐藏clippy警告,并通过添加如下代码行,让clippy忽略特定代码块的特定规则:


# [allow(dead_code)]

但是随着项目的继续,可能会发生这样的情况:您删除了这个问题,而实际上并没有删除clippy lint的允许。那么,有没有办法检查允许的clippy警告是否实际上已经不再使用了呢?所以,在这个例子中,我希望在出现#[allow(dead_code)]时得到通知,但实际上在给定的代码块中并没有发现死代码。

8nuwlpux

8nuwlpux1#

lint_reasons的不稳定特性(目前只能在使用夜间Rust编译器时使用)包括使用expect(而不是allow(的能力,这允许lint,但如果 * 未 * 检测到lint,则会发出警告。


# ![feature(lint_reasons)]

# [expect(dead_code)]

fn foo() {}

fn main() {
    foo();
}

输出量:

warning: this lint expectation is unfulfilled
 --> src/main.rs:3:10
  |
3 | #[expect(dead_code)]
  |          ^^^^^^^^^
  |
  = note: `#[warn(unfulfilled_lint_expectations)]` on by default

目前还没有时间表,这使它稳定,但至少人们希望看到它,并有一个实施。

vmpqdwk3

vmpqdwk32#

如果你不希望警告出现,你可以尝试在未使用的函数/变量/等等前面加上_(编译器也会提到这一点)。如果你删除了任何包含前缀的临时/死代码,你就不必担心#![allow(dead_code)]了。

相关问题