E0010

E0010#

这个模式未使用。这通常发生在模式匹配中,这个模式完全被前一个模式覆盖。

MoonBit 中的模式匹配是按顺序执行的,从第一个分支到最后一个。如果一个模式被前一个模式覆盖,它将永远不会被执行,因为所有的控制流都将被定向到第一个匹配的分支。

错误示例#

///|
test {
  match Some(1) {
    Some(1) | Some(1) => ()
    Some(2..<_) | Some(2) => ()
    _ | None => ()
  }
}

建议#

This warning can usually be fixed by removing the patterns that are covered.

///|
test {
  match Some(1) {
    Some(1) => ()
    Some(2..<_) => ()
    _ => ()
  }
}