Desugar field assignment via ident

This commit is contained in:
Joscha 2022-11-21 14:44:15 +01:00
parent 621ea8f1d4
commit 27ba13e8a2

View file

@ -118,17 +118,24 @@ impl Field {
value,
span,
} => {
let new = Expr::Field(Self::AssignIdent {
// `expr s0 . s1 ident s2 = s3 value`
// -> `expr s0 [ s1 ident_str ] s2 = s3 value`
let ident_str = Expr::Lit(Lit::String(StringLit {
elems: vec![StringLitElem::Plain(ident.name)],
span,
}));
let new = Expr::Field(Self::Assign {
expr,
s0,
s1,
ident,
s2,
s3,
index: Box::new(ident_str),
s2: Space::empty(span),
s3: s2,
s4: s3,
value,
span,
});
(new, false) // TODO Implement
(new, true)
}
}
}