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
}