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

late_final_local_already_assigned

late final ローカル変数はすでに代入されています。

説明

#

latefinal の両方にマークされたローカル変数に、別の代入が発生する時点で既に値が代入されていることをアナライザーが証明できる場合、アナライザーはこの診断を生成します。

final 変数は一度しか代入できないため、後続の代入は失敗することが保証されており、フラグが付けられます。

#

以下のコードは、final 変数 v が 2 箇所で値に代入されているため、この診断を生成します。

dart
int f() {
  late final int v;
  v = 0;
  v += 1;
  return v;
}

一般的な修正

#

変数を再代入できるようにする必要がある場合は、final キーワードを削除してください。

dart
int f() {
  late int v;
  v = 0;
  v += 1;
  return v;
}

変数を再代入する必要がない場合は、最初の代入以外のすべての代入を削除してください。

dart
int f() {
  late final int v;
  v = 0;
  return v;
}