`unreachable_from_main` 린트 규칙: 실행 라이브러리의 도달 불가능한 최상위 멤버

unreachable_from_main 린트 규칙: 실행 라이브러리의 도달 불가능한 최상위 멤버

unreachable_from_main실행(executable) 라이브러리 안에서 어디에서도 쓰이지 않는 최상위 멤버가 있을 때 Dart 분석기가 알려주는 린트(lint) 규칙이에요. 코드가 바로 터지는 건 아니지만, 쓰지도 않을 멤버를 남겨두면 라이브러리가 지저분해지고 나중에 헷갈리기 쉬워요.

출처: unreachable_from_main

본문

설명

실행 라이브러리에 선언된 멤버는 그 라이브러리 안에서 직접 사용되어야 해요. 실행 라이브러리란 최상위 main 함수를 가진 라이브러리 또는 @pragma('vm:entry-point')로 애너테이션된 최상위 함수를 가진 라이브러리를 말해요. 이런 실행 라이브러리는 보통 다른 라이브러리에서 import 되지 않기 때문에, 쓰이지 않는 멤버를 정의해 두는 건 피하는 게 좋아요.

이 규칙은 실행 라이브러리가 다른 라이브러리에 의해 import 되지 않고, 오직 main 함수를 실행하기 위해 쓰인다고 가정해요.

BAD:

main() {}
void f() {}

f()는 어디에서도 호출되지 않아요. 이 규칙이 이걸 찾아내요.

GOOD:

main() {
  f();
}
void f() {}

main에서 f()를 호출하니 더 이상 도달 불가능한 멤버가 아니에요.

활성화하기

unreachable_from_main 규칙을 켜려면 analysis_options.yaml 파일의 linter > rulesunreachable_from_main을 추가해요.

linter:
  rules:
    - unreachable_from_main

만약 YAML 맵(map) 문법으로 린터 규칙을 설정한다면 linter > rules 아래에 unreachable_from_main: true를 쓰면 돼요.

linter:
  rules:
    unreachable_from_main: true

더 알아보기