E4034#
发现多个可能的结构体类型,请添加更多注释。
错误示例:#
fn main {
struct S { x : Int; y : Int }
struct T { x : Int; y : Int }
let c = { x: 2, y: 1 }
}
在上述例子中,试图将一个带有字段 x
和 y
的结构体赋值给一个变量 c
,但这个字段组合同时匹配了 S
和 T
两种类型,会在第 4 行报错:
Multiple possible record types detected: T, S, please add more annotation.
建议#
通过添加类型注释来去歧义:
fn main {
struct S { x : Int; y : Int }
struct T { x : Int; y : Int }
let c : S = { x: 2, y: 1 }
}