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

no_duplicate_case_values

case 句の値 ('{0}') が、それより前の case 句の値 ('{1}') と同じです。

説明

#

同じ switch ステートメント内で 2 つ以上の case 句の値が重複している場合に、アナライザーはこの診断を生成します。

最初の case 句以降の case 句は実行されることがないため、重複した case 句は誤解を招きます。

この診断は、タイポまたは定数の値の変更が原因であることがよくあります。

#

以下のコードでは、2 つの case 句の値が同じ (1) であるため、この診断が生成されます。

dart
// @dart = 2.14
void f(int v) {
  switch (v) {
    case 1:
      break;
    case 1:
      break;
  }
}

一般的な修正

#

いずれかの句に異なる値が必要な場合は、その句の値を変更してください。

dart
void f(int v) {
  switch (v) {
    case 1:
      break;
    case 2:
      break;
  }
}

値が正しい場合は、ステートメントを単一の句にマージしてください。

dart
void f(int v) {
  switch (v) {
    case 1:
      break;
  }
}