illegal_concrete_enum_member
「{0}」という名前の具象インスタンスメンバーは、Enum を実装するクラスでは宣言できません。
「{0}」という名前の具象インスタンスメンバーは、「{1}」から継承することはできません。これは、Enum を実装するクラスの場合です。
説明
#アナライザーは、列挙型宣言、Enum を実装するクラス、または Enum をスーパー クラス制約とするミックスインが、index、hashCode、または == という名前の具象インスタンスメンバーを宣言または継承した場合に、この診断を生成します。
例
#以下のコードは、列挙型 E が index という名前のインスタンスゲッターを宣言しているため、この診断を生成します。
dart
enum E {
v;
int get index => 0;
}以下のコードは、Enum を実装するクラス C が hashCode という名前のインスタンスフィールドを宣言しているため、この診断を生成します。
dart
abstract class C implements Enum {
int hashCode = 0;
}以下のコードは、クラス A を介して間接的に Enum を実装するクラス C が hashCode という名前のインスタンスゲッターを宣言しているため、この診断を生成します。
dart
abstract class A implements Enum {}
abstract class C implements A {
int get hashCode => 0;
}以下のコードは、on 句に Enum を持つミックスイン M が == という名前の明示的な演算子を宣言しているため、この診断を生成します。
dart
mixin M on Enum {
bool operator ==(Object other) => false;
}一般的な修正
#競合するメンバーの名前を変更する
dart
enum E {
v;
int get getIndex => 0;
}