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

const_constructor_with_non_final_field

finalではないフィールドを持つクラスにconstコンストラクタを定義することはできません。

説明

#

コンストラクタがconstコンストラクタとしてマークされているにもかかわらず、そのコンストラクタが少なくとも1つのfinalではないインスタンスフィールド(直接または継承による)を持つクラスで定義されている場合に、アナライザはこの診断を生成します。

#

以下のコードは、フィールドxがfinalではないため、この診断を生成します。

dart
class C {
  int x;

  const C(this.x);
}

一般的な修正

#

すべてのフィールドをfinalとしてマークできる場合は、そうしてください。

dart
class C {
  final int x;

  const C(this.x);
}

すべてのフィールドをfinalとしてマークできない場合は、コンストラクタからconstキーワードを削除してください。

dart
class C {
  int x;

  C(this.x);
}