no_wildcard_variable_uses

no_wildcard_variable_uses

변수 이름을 밑줄만으로 지으면 와일드카드 취급돼요. 규칙상 그 이름을 다시 참조하는 건 금지되고, 참조하면 이 lint가 잡아 주는 거예요.

출처: no_wildcard_variable_uses

본문

설명

분석기는 이름이 밑줄로만 이루어진 파라미터나 지역 변수를 참조하면 이 진단을 만들어요. Dart 3.7부터 이런 이름은 바인딩되지 않는(non-binding) 취급이라 참조가 불법이 됐고, 그래서 이 진단은 이전 언어 버전의 코드에서만 나타나요.

예시

아래 코드는 파라미터 이름이 밑줄 두 개로 되어 있어서 이 진단이 나타나요.

// @dart = 3.6
void f(int __) {
  print(__);
}

아래 코드는 지역 변수 이름이 밑줄 하나로 되어 있어서 이 진단이 나타나요.

// @dart = 3.6
void f() {
  int _ = 0;
  print(_);
}

흔한 해결 방법

변수나 파라미터를 참조하려는 의도라면, 밑줄이 아닌 글자를 하나 이상 포함한 이름을 붙여 주세요.

void f(int p) {
  print(p);
}

참조할 의도가 없다면, 참조하는 자리를 다른 표현으로 바꿔 주세요.

void f() {
  print(0);
}

더 알아보기

  • Dart 3.7에서 와일드카드 변수(_, __ 같은 밑줄 이름)가 non-binding으로 바뀐 동작과 관계된 규칙이에요. 버전별 언어 규칙에 관심이 있다면 Dart 언어 버전 문서를 함께 보면 좋아요.