illegal_concrete_enum_member
不能在实现了 'Enum' 的类中声明名为 '{0}' 的具体实例成员。
不能在实现了 'Enum' 的类中从 '{1}' 继承名为 '{0}' 的具体实例成员。
描述
#当枚举声明、实现了 Enum
的类或具有 Enum
超类约束的 mixin 声明或继承了名为 index
、hashCode
或 ==
的具体实例成员时,分析器会产生此诊断信息。
示例
#以下代码会产生此诊断信息,因为枚举 E
声明了一个名为 index
的实例 getter。
dart
enum E {
v;
int get index => 0;
}
以下代码会产生此诊断信息,因为类 C
(该类实现了 Enum
)声明了一个名为 hashCode
的实例字段。
dart
abstract class C implements Enum {
int hashCode = 0;
}
以下代码会产生此诊断信息,因为类 C
(该类通过类 A
间接实现了 Enum
)声明了一个名为 hashCode
的实例 getter。
dart
abstract class A implements Enum {}
abstract class C implements A {
int get hashCode => 0;
}
以下代码会产生此诊断信息,因为 mixin M
(该 mixin 在 on
子句中包含 Enum
)声明了一个显式名为 ==
的运算符。
dart
mixin M on Enum {
bool operator ==(Object other) => false;
}
常见修复方法
#重命名冲突成员
dart
enum E {
v;
int get getIndex => 0;
}