missing_named_pattern_field_name
Getter 名称未明确指定,并且模式不是变量。
描述
#分析器在对象模式中遇到以下情况时会产生此诊断:属性的规范及其用于匹配属性值的模式不包含以下任一项
- 冒号前的 getter 名称
- 可推断出 getter 名称的变量模式
示例
#以下代码会产生此诊断,因为对象模式 (C(:0)
) 中冒号前没有 getter 名称,冒号后也没有变量模式。
dart
abstract class C {
int get f;
}
void f(C c) {
switch (c) {
case C(:0):
break;
}
}
常见修复方法
#如果你需要在模式的作用域内使用属性的实际值,则添加一个变量模式,其中变量的名称与要匹配的属性名称相同
dart
abstract class C {
int get f;
}
void f(C c) {
switch (c) {
case C(:var f) when f == 0:
print(f);
}
}
如果你不需要在模式的作用域内使用属性的实际值,则在冒号前添加要匹配的属性名称
dart
abstract class C {
int get f;
}
void f(C c) {
switch (c) {
case C(f: 0):
break;
}
}