E4199#
编译器诊断名称:struct_has_no_constr。
调用语法 Type(...) 只适用于声明了构造器的结构体。普通的记录风格结构体仍然可以用记录字面量创建,但它不会自动获得一个与结构体同名的构造函数。
错误示例#
///|
pub(all) struct Point {
x : Int
}
///|
test {
let _ : Point = Point(1)
}
建议#
使用记录构造,或先声明并实现构造器,再把结构体当作函数调用。
///|
pub(all) struct Point {
x : Int
}
///|
fn make_point(x : Int) -> Point {
{ x, }
}
///|
test {
let point = make_point(1)
inspect(point.x, content="1")
}