E3020#
结构体表达式中出现了意外的 =。结构体表达式的正确语法是 { field: expression }。
错误示例#
pub(all) struct S {
a : Int
b : Int
}
fn replace_a(s : S) -> S {
let ss = { ..s, a = 1 } // Error: Unexpected `=` in struct expression.
ss
}
test {
ignore(replace_a({ a: 0, b: 2 }))
}
建议#
更改结构体表达式,使用正确的语法:
///|
pub(all) struct S {
a : Int
b : Int
}
///|
fn replace_a(s : S) -> S {
let ss = { ..s, a: 1 }
ss
}
///|
test {
inspect(replace_a({ a: 0, b: 2 }).a, content="1")
}