E4199

E4199#

Compiler diagnostic name: struct_has_no_constr.

The call syntax Type(...) is available only for structs that declare a constructor. A regular record-style struct can still be created with a record literal, but it does not automatically get a constructor function with the struct name.

Erroneous example#

///|
pub(all) struct Point {
  x : Int
}

///|
test {
  let _ : Point = Point(1)
}

Suggestion#

Use record construction, or declare and implement a constructor before calling the struct as a function.

///|
pub(all) struct  {
   : 
}

///|
fn ( : ) ->  {
  { , }
}

///|
test {
  let  = (1)
  (., ="1")
}