E0084

E0084#

警告名称:unqualified_record

let 直接绑定的结构体字面量没有显式的 T:: 类型前缀。即使绑定上的类型标注已经确定了类型,在字面量上保留前缀也能明确所构造的类型。

错误示例#

类型标注指明了结构体类型,但字面量本身仍未带限定:

///|
pub struct Point {
  x : Int
  y : Int
}

///|
pub fn origin() -> Point {
  let point : Point = { x: 0, y: 0 }
  point
}

修改建议#

请为字面量加上结构体类型前缀,并让绑定的类型通过推断得出。

///|
pub struct Point {
  x : Int
  y : Int
}

///|
pub fn origin() -> Point {
  let point = Point::{ x: 0, y: 0 }
  point
}