跳到主要内容

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) {}
}