跳到主要内容

extension_type_representation_depends_on_itself

扩展类型的表示不能依赖于自身。

描述

#

当扩展类型的表示类型直接或间接依赖于扩展类型本身时,分析器会产生此诊断。

示例

#

以下代码会产生此诊断,因为扩展类型 A 的表示类型直接依赖于 A

dart
extension type A(A a) {}

以下两个代码示例会产生此诊断,因为扩展类型 A 的表示类型通过扩展类型 B 间接依赖于 A

dart
extension type A(B b) {}

extension type B(A a) {}
dart
extension type A(List<B> b) {}

extension type B(List<A> a) {}

常见修复方法

#

通过为循环中至少一个类型选择不同的表示类型来移除依赖关系

dart
extension type A(String s) {}