E3024

E3024#

struct 的构造函数必须命名为 new

当在 struct 内声明的构造函数没有命名为 new 时,会发生此错误。MoonBit 将 new 视为该结构体的构造入口。

错误示例#

pub struct S {
  x : Int
  fn constr(x : Int) -> S
}

fn S::constr(x : Int) -> S {
  { x, }
}

建议#

将构造函数重命名为 new

pub struct S {
  x : Int
  fn new(x : Int) -> S
}

fn S::new(x : Int) -> S {
  { x, }
}

pub fn make(x : Int) -> S {
  S::new(x)
}