extension_override_argument_not_assignable 진단: 확장 오버라이드의 인자 타입이 확장 대상 타입에 맞지 않아요
extension_override_argument_not_assignable 진단: 확장 오버라이드의 인자 타입이 확장 대상 타입에 맞지 않아요
Dart 분석기가 내보내는 진단에는 이름이 있어요. extension_override_argument_not_assignable는 확장 오버라이드(extension override)에 전달한 인자의 타입이 확장이 확장 대상으로 삼는 타입에 할당할 수 없을 때 분석기가 알려주는 컴파일 타임 진단이에요.
본문
설명
분석기는 확장 오버라이드에 전달된 인자가 확장이 확장 대상으로 삼는 타입에 할당할 수 없을 때 이 진단을 내보내요.
예시
다음 코드는 3이 String이 아니기 때문에 이 진단이 나와요.
extension E on String {
void method() {}
}
void f() {
E(3).method();
}
흔한 해결 방법
올바른 확장을 사용하고 있다면, 인자의 타입이 올바르도록 수정해요.
extension E on String {
void method() {}
}
void f() {
E(3.toString()).method();
}
인자의 타입에 맞는 다른 확장이 있다면, 확장의 이름을 바꾸거나 인자를 풀어서(unwrap) 올바른 확장이 찾아지게 해요.