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