メインコンテンツにスキップ

illegal_concrete_enum_member

「{0}」という名前の具象インスタンスメンバーは、Enum を実装するクラスでは宣言できません。

「{0}」という名前の具象インスタンスメンバーは、「{1}」から継承することはできません。これは、Enum を実装するクラスの場合です。

説明

#

アナライザーは、列挙型宣言、Enum を実装するクラス、または Enum をスーパー クラス制約とするミックスインが、indexhashCode、または == という名前の具象インスタンスメンバーを宣言または継承した場合に、この診断を生成します。

#

以下のコードは、列挙型 Eindex という名前のインスタンスゲッターを宣言しているため、この診断を生成します。

dart
enum E {
  v;

  int get index => 0;
}

以下のコードは、Enum を実装するクラス ChashCode という名前のインスタンスフィールドを宣言しているため、この診断を生成します。

dart
abstract class C implements Enum {
  int hashCode = 0;
}

以下のコードは、クラス A を介して間接的に Enum を実装するクラス ChashCode という名前のインスタンスゲッターを宣言しているため、この診断を生成します。

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;
}