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

missing_variable_pattern

論理和パターン ({0} 変数) がこの分岐にありません。

説明

#

アナライザーは、論理和パターンのある分岐で、同じパターンの別の分岐で宣言されている変数が宣言されていない場合に、この診断を生成します。

#

以下のコードは、論理和パターンの右辺で変数 a が宣言されていないため、この診断を生成します。

dart
void f((int, int) r) {
  if (r case (var a, 0) || (0, _)) {
    print(a);
  }
}

一般的な修正

#

制御ステートメントで変数を参照する必要がある場合は、論理和パターンのすべての分岐に変数の宣言を追加してください。

dart
void f((int, int) r) {
  if (r case (var a, 0) || (0, var a)) {
    print(a);
  }
}

制御ステートメントで変数を参照する必要がない場合は、論理和パターンのすべての分岐から変数の宣言を削除してください。

dart
void f((int, int) r) {
  if (r case (_, 0) || (0, _)) {
    print('found a zero');
  }
}

パターンのある分岐が一致する場合にのみ変数を参照する必要があり、別の分岐が一致する場合には参照する必要がない場合は、パターンを 2 つに分割してください。

dart
void f((int, int) r) {
  switch (r) {
    case (var a, 0):
      print(a);
    case (0, _):
      print('found a zero');
  }
}