Как разрешить dead_code и unused_imports только для сборок dev? - PullRequest
1 голос
/ 02 ноября 2019

Неиспользуемые предупреждения об импорте и мертвом коде являются наиболее распространенными, которые я обнаружил при изучении 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, но не могу понять этовне.

1 Ответ

1 голос
/ 02 ноября 2019

dev не поддерживается предикатом для условной компиляции, поэтому ваши примеры никогда не будут содержать затронутый код. Насколько я знаю, лучший способ определить режим отладки - использовать #[cfg(debug_assertions)]. В моем тестировании #![cfg_attr(debug_assertions, allow(dead_code, unused_imports))], кажется, работает, чтобы отключить ссылки для отладочных сборок, но включить их в сборках выпуска.

Вы можете увидеть список поддерживаемых предикатов в справочнике Rust .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...