type_test_with_non_type: 'is' 표현식에 타입이 아닌 이름을 쓰지 말아요
type_test_with_non_type: 'is' 표현식에 타입이 아닌 이름을 쓰지 말아요
분석기가 내보내는 진단에는 이름이 있어요. type_test_with_non_type는 is 검사에서 오른쪽에 타입이 아닌 값이 왔을 때 알려주는 진단이에요. 원문의 요지는 "이름 '{0}'은 타입이 아니라서 'is' 표현식에 쓸 수 없다"는 내용이에요.
본문
설명
분석기는 is나 is! 검사에서 오른쪽에 오는 대상이 타입이 아닐 때 이 진단을 만들어요. 타입 검사에서 오른쪽에는 반드시 타입이 와야 해요.
예시
다음 코드는 오른쪽에 타입이 아닌 매개변수가 와서 이 진단을 만들어요.
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;
}
}