E4007

E4007#

没有有效载荷的枚举变体被视为单例值。MoonBit 不允许将此类构造函数作为函数调用。

错误示例#

enum Status {
  Done
  Pending
}

fn main {
  let status = Done() // Error: constructor without payload cannot be called with ()
}

建议#

从构造函数中移除函数调用语法:

// ...
fn main {
  let status = Done
}

如果确实需要构造函数来构造值,请显式地使用 Unit 作为其参数

enum Status {
  Done(Unit)
  Pending
}

fn main {
  let status = Done(())
}