E4201#
编译器诊断名称:struct_constr_inconsistent_impl。
结构体构造器的实现必须与 struct 中的构造器声明具有相同的参数类型和返回类型。签名不同的方法不是该构造器的实现。
错误示例#
///|
priv struct Point {
x : Int
fn new(Int) -> Point
}
///|
fn Point::new(text : String) -> Point {
{ x: text.length() }
}
建议#
修改构造器声明或 Type::new 实现,使两者的签名保持一致。
///|
priv struct Point {
x : Int
fn new(Int) -> Point
}
///|
fn Point::new(x : Int) -> Point {
{ x, }
}
///|
test {
let point = Point(2)
inspect(point.x, content="2")
}