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

enum_mixin_with_instance_variable

列挙型に適用されるミックスインにはインスタンス変数を含めることはできません。

説明

#

この診断は、列挙型に適用されるミックスインが1つ以上のインスタンス変数を宣言した場合にアナライザーによって生成されます。これは、列挙型の値は定数であり、ミックスインのフィールドを初期化するために列挙型のコンストラクタを使用する方法がないため、許可されません。

#

以下のコードは、ミックスイン M がインスタンスフィールド x を定義しているため、この診断を生成します。

dart
mixin M {
  int x = 0;
}

enum E with M {
  a
}

一般的な修正

#

ミックスインを適用する必要がある場合は、すべてのインスタンスフィールドをgetterおよびsetterのペアに変更し、必要に応じて列挙型で実装してください。

dart
mixin M {
  int get x => 0;
}

enum E with M {
  a
}

ミックスインを適用する必要がない場合は、削除してください。

dart
enum E {
  a
}