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

pattern_variable_assignment_inside_guard

パターン変数を、囲むガード付きパターンのガード内で代入することはできません。

説明

#

パターン変数がガード(when)句内で値に代入されると、アナライザーはこの診断を生成します。

#

以下のコードでは、変数 a がガード句内で値に代入されているため、この診断が生成されます。

dart
void f(int x) {
  if (x case var a when (a = 1) > 0) {
    print(a);
  }
}

一般的な修正

#

キャプチャする必要のある値がある場合は、別の変数に代入してください。

dart
void f(int x) {
  var b;
  if (x case var a when (b = 1) > 0) {
    print(a + b);
  }
}

キャプチャする必要のある値がない場合は、代入を削除してください。

dart
void f(int x) {
  if (x case var a when 1 > 0) {
    print(a);
  }
}