Tim*_*son 3 compiler-warnings rust
Rust警告未使用的私人物品:
warning: function is never used: `hmm`
--> src/example.rs:357:1
|
357 | fn hmm() {
| ^^^^^^^^
|
= note: #[warn(dead_code)] on by default
Run Code Online (Sandbox Code Playgroud)
我有一些标记pub
为我知道没有被使用的代码.我怎样才能让编译器警告我这个?
这是在一个库和一系列二进制文件的上下文中,所有这些都在同一个工作区中.该库仅供这些二进制文件使用; 该库未被其他任何人使用,我不打算上传到crates.io,因此我完全了解正在使用的代码.
您无法启用任何操作.根据定义,如果某些东西在您的箱子外面是公开的,它可能被进口您的箱子的箱子使用; 编译器无法实际告诉.这是拥有公共API的一部分.从公共API中删除内容是一个重大变化.
如果您有一个未从您的箱子中导出的物品,那么它pub
无关紧要:
mod foo {
pub fn bar() {}
}
fn main() {}
Run Code Online (Sandbox Code Playgroud)
warning: function is never used: `bar`
--> src/main.rs:2:5
|
2 | pub fn bar() {}
| ^^^^^^^^^^^^
|
= note: #[warn(dead_code)] on by default
Run Code Online (Sandbox Code Playgroud)
相反,不要将事物标记为公开.相反,要么pub
完全放弃,要么使用可见性修饰符pub(crate)
.二进制板条箱基本上没有标记为从箱子出口的物品.
在您工作空间的特定情况下,从来没有一个编译器知道"一切"的时间.例如,如果你的库导出fn a()
和fn b()
一个二进制文件使用a
而另一个二进制文件使用b
,那么没有编译库或任何二进制文件都会看到整个图片."最好的"案例将是大量的误报.
在类似的情况下,我已经从API中删除所有公共内容并编译以查看错误/使用过的函数.