如何允许 dead_code 和 unused_imports 仅用于开发版本?
How to allow dead_code and unused_imports for dev builds only?
未使用的导入和死代码警告是我在学习 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))]
我用 Google 搜索并阅读了 Whosebug 上的所有相关问题,但无法解决这个问题。
dev
不是条件编译支持的谓词,因此您的示例永远不会包含受影响的代码。据我所知,检测调试模式的最佳方法是使用 #[cfg(debug_assertions)]
。通过我的测试,#![cfg_attr(debug_assertions, allow(dead_code, unused_imports))]
似乎可以为调试版本禁用 lints,但在发布版本中启用它们。
您可以看到支持的谓词列表 in the Rust reference。
未使用的导入和死代码警告是我在学习 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))]
我用 Google 搜索并阅读了 Whosebug 上的所有相关问题,但无法解决这个问题。
dev
不是条件编译支持的谓词,因此您的示例永远不会包含受影响的代码。据我所知,检测调试模式的最佳方法是使用 #[cfg(debug_assertions)]
。通过我的测试,#![cfg_attr(debug_assertions, allow(dead_code, unused_imports))]
似乎可以为调试版本禁用 lints,但在发布版本中启用它们。
您可以看到支持的谓词列表 in the Rust reference。