extension_type_representation_depends_on_itself
extension_type_representation_depends_on_itself
확장 타입(extension type)의 표현 타입(representation type)이 자기 자신에 의존하게 되면 이 진단이 발생해요. 표현 타입이 직접 혹은 간접적으로 자기 자신을 가리키는 순환 관계가 생기지 않도록 잡아 주는 역할을 해요.
본문
설명
analyzer는 확장 타입의 표현 타입이 자기 자신(확장 타입)에 직접적으로 또는 간접적으로 의존할 때 이 진단을 내보내요.
예시
아래 코드는 확장 타입 A의 표현 타입이 A에 직접 의존하기 때문에 이 진단이 발생해요.
extension type A(A a) {}
다음 두 코드는 확장 타입 A의 표현 타입이 확장 타입 B를 통해 A에 간접적으로 의존하기 때문에 이 진단이 발생해요.
extension type A(B b) {}
extension type B(A a) {}
extension type A(List<B> b) {}
extension type B(List<A> a) {}
흔한 해결 방법
순환 관계에 있는 타입 중 적어도 하나는 다른 표현 타입을 골라서 의존 관계를 없애 주면 돼요.
extension type A(String s) {}
더 알아보기
- 확장 타입이 자기 자신을 표현 타입으로 쓰면 무한히 커지는 구조가 되어 버려요. 표현 타입은 항상 확장 타입 자신이 아닌 다른 타입으로 지정해 주세요.