E3016

E3016#

参数中出现了意外的 ~。你是不是想要 label=patternlabel~

错误示例#

///|
pub(all) enum A {
  A(b~ : Int)
}

///|
fn describe(a : A) -> Unit {
  match a {
    A(b~=c) => println("Hello, world! \{c}") // Error: unexpected `~` in argument. Did you mean `label=pattern` or `label~`?
  }
}

///|
test {
  describe(A(b=1))
}

建议#

b~ 替换为适当的 b=b~

///|
pub(all) enum A {
  A(b~ : Int)
}

///|
fn use_pun_pattern(a : A) -> Unit {
  match a {
    A(b~) => println("Hello, world! \{b}")
  }
}

///|
test {
  use_pun_pattern(A(b=1))
  use_named_pattern(A(b=1))
}

或者,

///|
fn use_named_pattern(a : A) -> Unit {
  match a {
    A(b=c) => println("Hello, world! \{c}")
  }
}