duplicate_pattern_field
欄位 '{0}' 在此模式中已匹配。
描述
#當記錄模式多次匹配同一欄位,或物件模式多次匹配同一 getter 時,分析器會生成此診斷。
示例
#以下程式碼生成此診斷,因為記錄欄位 a 在同一記錄模式中匹配了兩次
dart
void f(({int a, int b}) r) {
switch (r) {
case (a: 1, a: 2):
return;
}
}以下程式碼生成此診斷,因為 getter f 在同一物件模式中匹配了兩次
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;
}
}