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

duplicate_pattern_field

フィールド「{0}」は、このパターンで既に一致しています。

説明

#

レコードパターンが同じフィールドに複数回一致する場合、またはオブジェクトパターンが同じゲッターに複数回一致する場合、アナライザーはこの診断を生成します。

#

以下のコードは、同じレコードパターンでレコードフィールドaが2回一致するため、この診断を生成します。

dart
void f(({int a, int b}) r) {
  switch (r) {
    case (a: 1, a: 2):
      return;
  }
}

以下のコードは、同じオブジェクトパターンでゲッターfが2回一致するため、この診断を生成します。

dart
void f(Object o) {
  switch (o) {
    case C(f: 1, f: 2):
      return;
  }
}
class C {
  int? f;
}

一般的な修正

#

パターンが重複フィールドの複数の値に一致する必要がある場合は、論理和パターンを使用してください。

dart
void f(({int a, int b}) r) {
  switch (r) {
    case (a: 1, b: _) || (a: 2, b: _):
      break;
  }
}

パターンが複数のフィールドに一致する必要がある場合は、フィールドのいずれかの名前を変更してください。

dart
void f(({int a, int b}) r) {
  switch (r) {
    case (a: 1, b: 2):
      return;
  }
}