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);
}
}