struct SemanticDirection;

fn main() {}
warning: struct is never used: `SemanticDirection`
 --> src/main.rs:1:1
  |
1 | struct SemanticDirection;
  | ^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: #[warn(dead_code)] on by default

我将在任何严重的情况下重新打开这些警告,但我只是在修补语言,这让我很抓狂。

我尝试添加#[允许(dead_code)]到我的代码,但这并不管用。


当前回答

公开代码也会停止警告;你还需要将封闭的mod设为public。

当你在编写一个库时,这是有意义的:你的代码在内部是“未使用的”,因为它是供客户端代码使用的。

其他回答

你可以通过在变量名后面加一个(_)来禁用未使用的变量/函数,如下所示:

let _variable = vec![0; 10];

你可以添加#[allow(dead_code)]属性到结构定义中,如下所示:

#[allow(dead_code)]
struct SemanticDirection;

或者你可以通过在文件顶部添加属性来禁用整个文件的警告,如下所示:

#![allow(dead_code)]

struct SemanticDirection;

但是这些属性只有在启用dead_code lint时才有效。默认情况下,dead_code lint在Rust中是启用的,但你可以通过在代码顶部添加以下内容来禁用它:

#![deny(dead_code)]

这将禁用整个文件的dead_code lint。

保持dead_code lint的启用通常是一个好主意,因为它可以帮助您捕捉代码中的错误,并确保您没有在项目中引入不必要的代码。然而,当你只是在试验和尝试不同的东西时,它可能会很烦人,所以如果你想在这些情况下禁用它是可以理解的。

使用特性

#[cfg(feature = "dead_code")]

注意:“dead_code”可以被任何单词替换。

把这两行放在文件的顶部。

#![allow(dead_code)]
#![allow(unused_variables)]

另外,rust还提供了四个级别的检测(允许、警告、拒绝和禁止)。

https://doc.rust-lang.org/rustc/lints/levels.html#lint-levels