Rea*_*lar 5 compiler-warnings rust
未使用的导入和死代码警告是我在学习 Rust 时发现的最常见的问题,一段时间后(很短的时间,比如几秒钟)它们会变得很烦人。特别是当它们与编译器错误混合时,因为它使控制台难以阅读。
我能够关闭这些警告:
#![allow(unused_imports)]
#![allow(dead_code)]
Run Code Online (Sandbox Code Playgroud)
这将禁用所有构建的警告,但我希望为发布构建启用警告。
我试着像这样禁用它们:
#![cfg(dev)]
#![allow(unused_imports)]
#![allow(dead_code)]
Run Code Online (Sandbox Code Playgroud)
但是,这从发布版本中删除了整个 Rust 文件(不是我想要的)。
我尝试配置 usingcfg_attr
但它对任何一个构建都没有影响。
#![cfg_attr(dev, allow(unused_imports))]
#![cfg_attr(dev, allow(dead_code))]
Run Code Online (Sandbox Code Playgroud)
我在谷歌上搜索并阅读了 StackOverflow 上的所有相关问题,但无法弄清楚。
ape*_*lla 16
dev
不是条件编译支持的谓词,因此您的示例将永远不会包含受影响的代码。据我所知,检测调试模式的最佳方法是使用#[cfg(debug_assertions)]
. 通过我的测试,#![cfg_attr(debug_assertions, allow(dead_code, unused_imports))]
似乎可以在调试版本中禁用 lint,但在发布版本中启用它们。
您可以在 Rust 参考 中查看支持的谓词列表。