Как отключить предупреждения о неиспользуемом коде в Rust?
struct SemanticDirection;
fn main() {}
warning: struct is never used: 'SemanticDirection'
--> src/main.rs:1:1
|
1 | struct SemanticDirection;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(dead_code)] on by default
Я включу эти предупреждения снова для чего-нибудь серьезного, но я просто возиться с языком, и это сводит меня с ума.
Я попытался добавить #[allow(dead_code)]
в мой код, но это не сработало.
Ответы
Ответ 1
Вы также можете:
-
Добавьте атрибут allow
для структуры, модуля, функции и т. Д.:
#[allow(dead_code)]
struct SemanticDirection;
-
Добавьте атрибут allow
уровня ящика; обратите внимание !
:
#![allow(dead_code)]
-
Передайте это rustc
:
rustc -A dead_code main.rs
-
Передайте его, используя cargo
через переменную среды RUSTFLAGS
:
RUSTFLAGS="$RUSTFLAGS -A dead_code" cargo build
Ответ 2
Другой способ отключить это предупреждение - добавить префикс к идентификатору _
:
struct _UnusedStruct {
_unused_field: i32,
}
fn main() {
let _unused_variable = 10;
}
Это может быть полезно, например, с окном SDL:
let _window = video_subsystem.window("Rust SDL2 demo", 800, 600);
Префикс с подчеркиванием отличается от использования одиночного подчеркивания в качестве имени. Выполнение следующих действий приведет к немедленному разрушению окна, что вряд ли является предполагаемым поведением.
let _ = video_subsystem.window("Rust SDL2 demo", 800, 600);
Ответ 3
Создание кода общественность также останавливает предупреждения; вам нужно будет также сделать публичный mod
.
Это имеет смысл, когда вы пишете библиотеку: ваш код "не используется" внутри, потому что он предназначен для использования клиентским кодом.