跳到主要内容

refutable_pattern_in_irrefutable_context

可反驳模式不能用于不可反驳的上下文。

描述

#

当在只允许使用 不可反驳模式 的上下文中使用 可反驳模式 时,分析器会产生此诊断。

不允许使用的可反驳模式包括:

  • 逻辑或
  • 关系
  • 空检查
  • 常量

会检查的上下文包括:

  • 基于模式的变量声明
  • 基于模式的 for 循环
  • 左侧带有模式的赋值

示例

#

以下代码会产生此诊断,因为空检查模式(即可反驳模式)被用于基于模式的变量声明中,而该上下文不允许使用可反驳模式。

dart
void f(int? x) {
  var (_?) = x;
}

常见修复方法

#

重写代码,避免在不可反驳的上下文中使用可反驳模式。