dot_shorthand_missing_context 진단: 컨텍스트 타입이 없으면 dot shorthand를 쓸 수 없어요

dot_shorthand_missing_context 진단: 컨텍스트 타입이 없으면 dot shorthand를 쓸 수 없어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. dot_shorthand_missing_context컨텍스트 타입(context type)이 없는 곳에서 dot shorthand를 사용할 때 분석기가 알려주는 컴파일 타임 진단이에요. dot shorthand는 타입을 추론할 컨텍스트가 필요해서, 그게 없으면 어떤 타입을 참조하는지 알 수 없어요.

출처: dot_shorthand_missing_context

본문

설명

분석기는 컨텍스트 타입이 없는 곳에서 dot shorthand를 사용할 때 이 진단을 만들어요.

예시

다음 코드는 .a라는 표현식에 대한 컨텍스트 타입이 없기 때문에 이 진단이 나와요.

void f() {
  var e = .a;
  print(e);
}

enum E { a, b }

흔한 해결 방법

dot shorthand를 쓰고 싶다면 컨텍스트 타입을 추가해 주세요. 이 예시에서는 로컬 변수에 명시적 타입 E를 붙이면 돼요.

void f() {
  E e = .a;
  print(e);
}

enum E { a, b }

컨텍스트 타입을 추가하고 싶지 않다면, 참조하는 멤버를 담고 있는 타입의 이름을 지정해 주세요. 이 경우에는 E예요.

void f() {
  var e = E.a;
  print(e);
}

enum E { a, b }

더 알아보기