未使用的导入和死代码警告是我在学习 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 不是条件编译的受支持谓词,因此您的示例永远不会包含受影响的代码。据我所知,检测 Debug模式的最佳方法是使用 #[cfg(debug_assertions)] 。通过我的测试,#![cfg_attr(debug_assertions, allow(dead_code, unused_imports))] 似乎可以禁用调试版本的 lint,但在发布版本中启用它们。

您可以看到支持的谓词列表 in the Rust reference

关于rust - 如何仅允许开发构建的 dead_code 和未使用的导入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58671430/

10-10 14:13
查看更多