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

undefined_enum_constructor

指定された名前 '{0}' のコンストラクタが列挙型に存在しません。

列挙型に名前のないコンストラクタがありません。

説明

#

列挙型の値を初期化するために呼び出されたコンストラクタが存在しない場合に、アナライザーはこの診断を生成します。

#

以下のコードは、列挙型の値 c が名前のないコンストラクタで初期化されていますが、E には名前のないコンストラクタが定義されていないため、この診断を生成します。

dart
enum E {
  c();

  const E.x();
}

以下のコードは、列挙型の値 c が名前 x のコンストラクタで初期化されていますが、E には名前 x のコンストラクタが定義されていないため、この診断を生成します。

dart
enum E {
  c.x();

  const E.y();
}

一般的な修正

#

列挙型の値が名前のないコンストラクタで初期化されており、名前付きコンストラクタのいずれかを使用すべきだった場合は、コンストラクタの名前を追加してください。

dart
enum E {
  c.x();

  const E.x();
}

列挙型の値が名前のないコンストラクタで初期化されており、名前付きコンストラクタのいずれも適切でない場合は、名前のないコンストラクタを定義してください。

dart
enum E {
  c();

  const E();
}

列挙型の値が名前付きコンストラクタで初期化されており、既存のコンストラクタのいずれかを使用すべきだった場合は、呼び出されているコンストラクタの名前を変更するか (名前のないコンストラクタを使用すべき場合は削除してください)

dart
enum E {
  c.y();

  const E();
  const E.y();
}

列挙型の値が名前付きコンストラクタで初期化されており、既存のコンストラクタのいずれも使用すべきでなかった場合は、使用された名前のコンストラクタを定義してください。

dart
enum E {
  c.x();

  const E.x();
}