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

2 113

2 ответа:

вы можете

  1. добавить allow атрибут структуры, модуля, функции и т. д.:

    #[allow(dead_code)]
    struct SemanticDirection;
    
  2. добавить обрешетка-уровень allow атрибут; обратите внимание на !:

    #![allow(dead_code)]
    
  3. передать rustc:

    rustc -A dead_code main.rs
    
  4. передать его с помощью cargo через RUSTFLAGS переменные среды:

    RUSTFLAGS="$RUSTFLAGS -A dead_code" cargo build
    

еще один способ отключить это предупреждение-префикс идентификатора _:

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);