跳到主要內容

refutable_pattern_in_irrefutable_context

可反駁模式不能用於不可反駁的上下文。

描述

#

當在只允許使用 不可反駁模式 的上下文中使用 可反駁模式 時,分析器會產生此診斷。

不允許使用的可反駁模式包括:

  • 邏輯或
  • 關係
  • 空檢查
  • 常量

會檢查的上下文包括:

  • 基於模式的變數宣告
  • 基於模式的 for 迴圈
  • 左側帶有模式的賦值

示例

#

以下程式碼會產生此診斷,因為空檢查模式(即可反駁模式)被用於基於模式的變數宣告中,而該上下文不允許使用可反駁模式。

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

常見修復方法

#

重寫程式碼,避免在不可反駁的上下文中使用可反駁模式。