有时在开发过程中我想允许警告。例如,对于dead_code. 然而,在 CI 和 pre_commit git hooks 中,我有RUSTFLAGS="--deny warnings".
所以我想我想要的是一个属性,例如
#[expect(dead_code)]
fn foo() {
todo!();
}
Run Code Online (Sandbox Code Playgroud)
它的工作方式与 TypesScript 类似@ts-expect-error,但更具体,需要特定的警告列表。
不确定这对于预期错误是否也有意义。
这得到了实验的支持。RFC 称为Lint Reasons。该形式正是您所期望的:#[expect(lint)]。
#![feature(lint_reasons)]
#[expect(dead_code)]
fn foo() {
todo!();
}
Run Code Online (Sandbox Code Playgroud)
游乐场。
如果未达到预期,则会发出警告。你可以#[deny(unfulfilled_lint_expectations)]让它变成一个错误。
如果您只想允许警告(但在未引发时不发出警告),请使用#[allow(lint)]:
#[allow(dead_code)]
fn foo() {
todo!();
}
Run Code Online (Sandbox Code Playgroud)
游乐场。