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, value,
span, 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, expr,
s0, s0,
s1, s1,
ident, index: Box::new(ident_str),
s2, s2: Space::empty(span),
s3, s3: s2,
s4: s3,
value, value,
span, span,
}); });
(new, false) // TODO Implement (new, true)
} }
} }
} }