E4043

E4043#

结构体字段被多次定义或匹配。

错误示例:#

struct S { a : Int }
let a : Int = match S::{ a: 2, a: 3 } {
  { a: 2, a: 3 } => 4
  _ => 5
}

上述例子中,试图:

  1. 创建一个多次定义字段 a 的结构体。

  2. 通过多次匹配字段 a 解构结构体。

在第 2 行给出了以下错误:

The record field a is defined several times.

在第 3 行给出了以下错误:

The record field a is matched several times in this pattern.

建议#

确保结构体字段只被定义或匹配一次:

struct S { a : Int }
let a : Int = match S::{ a: 2 } {
  { a: 2 } => 4
  _ => 5
}