본문 바로가기
잡담/궁금증 해결

Rust Lint로 숨겨진 Warning 찾기

by lms0806 2026. 6. 7.
728x90
반응형

Rust에는 다양한 warning 로그가 존재합니다.

 

물론, 모든 warning로그를 지우지 않아도 되지만, 사용하지 않는 코드가 남아있다거나, 불필요한 변수를 선언한 경우 등 다양한 케이스들에도 warning로그가 발생해, 저는 왠만하면 제거하고 있습니다.

 

그러던 중 [workspace.lints.rust]이라는 것을 알게 되었고, 이를 프로젝트에 적용한 후, cargo build --all-targets --all-features를 실행하게 되면, 숨겨진(?) warning 로그들을 찾아서 알려줍니다.

 

몇몇 lint들에 대하여 이야기 드리자면

버그 발견

unused_must_use = "warn"을 사용하게 되면 다음과 같은 케이스를 발견할 수 있습니다.

fn process() -> Result<(), Error> {
    do_something();
    Ok(())
}

process();

해당 경우에는 process()가 아닌 process()?을 사용해야지 맞는 방식입니다.

불필요한 import

unused_imports = "warn"을 사용하게 되면 다음과 같은 케이스를 발견할 수 있습니다.

use std::collections::{HashMap, HashSet};

이렇게 선언되어져 있는데, HashSet을 사용하지 않는 경우, 불필요한 import가 생겨 이런 케이스들은 지우는게 좋습니다.

스타일 통일

non_snake_case = "warn"
non_camel_case_types = "warn"
non_upper_case_globals = "warn"

다음과 같이 선언하고, 사용하게 된다면 여러 사람들이 사용하는 코드 스타일을 하나로 통합할 수 있습니다.

 

이번에 오픈소스에 기여하는 부분 중, 해당 내용과 관련된 하나의 pr이 merge 되었습니다.

 

unused_qualifications = "warn"이 내부 코드상으로 주석처리 되어 있었으나, 해당 주석을 해제하고 코드를 수정한 pr이였습니다.

 

import로 이미 선언되어 있는 부분들 중, 경로 접두사가 표기되어 있는 부분에 대하여 wanring로그를 띄우도록 하고, 이를 전부 수정하였습니다.

 

[workspace.lints.rust]와 관련 항목들은 rustc -W help를 입력하시면 확인해보실 수 있습니다.

728x90
반응형

댓글