未使用的导入和死代码警告是我在学习Rust时发现的最常见的,它们会在一段时间后变得很烦人(很短的一段时间,比如几秒钟(。尤其是当它们与编译器错误混合在一起时,因为这会使控制台难以读取。
我能够关闭这些警告:
#![allow(unused_imports)]
#![allow(dead_code)]
这将禁用所有版本的警告,但我希望为发布版本启用警告。
我试着这样禁用它们:
#![cfg(dev)]
#![allow(unused_imports)]
#![allow(dead_code)]
但是,这从发布版本中删除了整个Rust文件(不是我想要的(。
我尝试使用cfg_attr
进行配置,但它对两种构建都没有影响。
#![cfg_attr(dev, allow(unused_imports))]
#![cfg_attr(dev, allow(dead_code))]
我已经在谷歌上搜索并阅读了StackOverflow上的所有相关问题,但无法理解。
dev
不是条件编译支持的谓词,因此您的示例永远不会包含受影响的代码。据我所知,检测调试模式的最佳方法是使用#[cfg(debug_assertions)]
。在我的测试中,#![cfg_attr(debug_assertions, allow(dead_code, unused_imports))]
似乎可以为调试构建禁用lint,但在发布构建中启用它们。
您可以在Rust引用中看到一个受支持谓词的列表。