constant_pattern_never_matches_value_type
匹配的值类型 '{0}' 永远不可能等于类型为 '{1}' 的此常量。
描述
#当常量模式永远无法匹配与其进行测试的值时,分析器会产生此诊断信息,因为已知常量的类型与值的类型永远不匹配。
示例
#以下代码会产生此诊断信息,因为常量模式 (true)
的类型是 bool
,而要匹配的值 (x
) 的类型是 int
,布尔值永远不能匹配整数
dart
void f(int x) {
if (x case true) {}
}
常见修复方法
#如果值的类型正确,则重写模式以使其兼容
dart
void f(int x) {
if (x case 3) {}
}
如果常量的类型正确,则重写值以使其兼容
dart
void f(bool x) {
if (x case true) {}
}