未使用的导入和死代码警告是我在学习 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/