extension_type_implements_itself 진단: 확장 타입이 자기 자신을 implements 할 때

extension_type_implements_itself 진단: 확장 타입이 자기 자신을 implements 할 때

Dart 분석기가 내보내는 진단에는 이름이 있어요. extension_type_implements_itself확장 타입(extension type)이 직접 또는 간접적으로 자기 자신을 implements할 때 분석기가 알려주는 컴파일 타임 진단이에요.

출처: extension_type_implements_itself

본문

설명

분석기는 확장 타입이 자기 자신을 implements하면 이 진단을 만들어요. 이때 직접(directly) 또는 간접(indirectly)적으로 자기 자신을 구현하는 경우가 모두 해당돼요.

다음 코드는 확장 타입 A가 직접 자기 자신을 implements하기 때문에 이 진단이 나와요.

extension type A(int i) implements A {}

다음 코드는 확장 타입 AB를 통해 간접적으로 자기 자신을 implements하기 때문에 이 진단이 나와요.

extension type A(int i) implements B {}
extension type B(int i) implements A {}

흔한 해결 방법

순환 고리에 포함된 타입 중 적어도 하나의 implements 절에서 타입을 하나 제거해 순환 고리를 끊으면 돼요.

extension type A(int i) implements B {}
extension type B(int i) {}

더 알아보기