extension_type_implements_representation_not_supertype 진단: 구현하는 확장 타입의 표현 타입이 슈퍼타입이 아닐 때
extension_type_implements_representation_not_supertype 진단: 구현하는 확장 타입의 표현 타입이 슈퍼타입이 아닐 때
Dart 분석기가 내보내는 진단에는 이름이 있어요. extension_type_implements_representation_not_supertype은 확장 타입(extension type)이 다른 확장 타입을 implements할 때, 구현되는 확장 타입의 표현 타입(representation type)이 구현하는 확장 타입의 표현 타입의 슈퍼타입이 아닐 때 분석기가 알려주는 컴파일 타임 진단이에요.
본문
설명
분석기는 확장 타입이 다른 확장 타입을 implements하는데, 구현되는 확장 타입의 표현 타입이 구현하는 확장 타입의 표현 타입의 서브타입(subtype)이 아닐 때 이 진단을 만들어요.
예시
다음 코드는 확장 타입 B가 A를 implements하는데, A의 표현 타입(num)이 B의 표현 타입(String)의 서브타입이 아니기 때문에 이 진단이 나와요.
extension type A(num i) {}
extension type B(String s) implements A {}
흔한 해결 방법
두 확장 타입의 표현 타입을 바꿔서 구현되는 타입의 표현 타입이 구현하는 타입의 표현 타입의 슈퍼타입이 되게 해요.
extension type A(num i) {}
extension type B(int n) implements A {}
또는 implements 절에서 구현하는 타입을 삭제해요.
extension type A(num i) {}
extension type B(String s) {}