Desugar field assignment via ident
This commit is contained in:
parent
621ea8f1d4
commit
27ba13e8a2
1 changed files with 12 additions and 5 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue