type_test_with_non_type: 'is' 표현식에 타입이 아닌 이름을 쓰지 말아요

type_test_with_non_type: 'is' 표현식에 타입이 아닌 이름을 쓰지 말아요

분석기가 내보내는 진단에는 이름이 있어요. type_test_with_non_typeis 검사에서 오른쪽에 타입이 아닌 값이 왔을 때 알려주는 진단이에요. 원문의 요지는 "이름 '{0}'은 타입이 아니라서 'is' 표현식에 쓸 수 없다"는 내용이에요.

출처: type_test_with_non_type

본문

설명

분석기는 isis! 검사에서 오른쪽에 오는 대상이 타입이 아닐 때 이 진단을 만들어요. 타입 검사에서 오른쪽에는 반드시 타입이 와야 해요.

예시

다음 코드는 오른쪽에 타입이 아닌 매개변수가 와서 이 진단을 만들어요.

typedef B = int Function(int);

void f(Object a, B b) {
  if (a is b) {
    return;
  }
}

흔한 해결 방법

타입 검사를 하려는 의도였다면, 오른쪽을 타입으로 바꿔요.

typedef B = int Function(int);

void f(Object a, B b) {
  if (a is B) {
    return;
  }
}

다른 종류의 검사를 하려는 의도였다면, 검사 자체를 바꿔요.

typedef B = int Function(int);

void f(Object a, B b) {
  if (a == b) {
    return;
  }
}

더 알아보기