E4124

E4124#

构造函数是二义性的:它可能来自多个类型。

错误示例#

pub enum A {
  A(Int)
  B(Bool)
  C(Double)
}

pub enum B {
  A(Double)
  B(Int)
  C(Bool)
}

pub fn use_a() -> Unit {
  ignore(A(1))
}

建议#

在构造函数前添加 T::

pub enum A {
  A(Int)
  B(Bool)
  C(Double)
}

pub enum B {
  A(Double)
  B(Int)
  C(Bool)
}

pub fn use_all() -> (A, A, A, B, B, B) {
  (
    A::A(1),
    A::B(true),
    A::C(1.0),
    B::A(1.0),
    B::B(1),
    B::C(true),
  )
}