[warnings] 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)]내 코드에 추가하려고 시도했지만 작동하지 않았습니다.



답변

다음 중 하나를 수행 할 수 있습니다.

  • 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

답변

이 경고를 비활성화하는 다른 방법은 다음과 같이 식별자 앞에 접두사를 추가하는 것입니다 _.

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


답변

코드를 공개 하면 경고가 중지됩니다. 인클로저를 mod공개 해야합니다 .

이것은 라이브러리를 작성할 때 의미가 있습니다. 코드는 클라이언트 코드에서 사용되기 때문에 내부적으로 “사용되지 않습니다”.


답변

또한 녹은 4 가지 수준의 보풀을 제공합니다 (허용, 경고, 거부, 금지).

https://doc.rust-lang.org/rustc/lints/levels.html#lint-levels


답변