mirror of
https://github.com/Myriad-Dreamin/tinymist.git
synced 2025-11-20 03:49:45 +00:00
refactor: destructuring pattern handling in ExprWorker
This commit is contained in:
parent
79215fb191
commit
11e6e31cab
1 changed files with 8 additions and 5 deletions
|
|
@ -516,7 +516,7 @@ impl ExprWorker<'_> {
|
|||
}
|
||||
ast::DestructuringItem::Named(named) => {
|
||||
let key = Decl::var(named.name()).into();
|
||||
let val = self.check_pattern_expr(named.expr());
|
||||
let val = self.check_pattern(named.pattern());
|
||||
names.push((key, val));
|
||||
}
|
||||
ast::DestructuringItem::Spread(spreading) => {
|
||||
|
|
@ -525,14 +525,17 @@ impl ExprWorker<'_> {
|
|||
} else {
|
||||
Decl::spread(spreading.span()).into()
|
||||
};
|
||||
let pattern = Pattern::Expr(Expr::Star).into();
|
||||
|
||||
if inputs.is_empty() {
|
||||
spread_left =
|
||||
Some((decl, self.check_pattern_expr(spreading.expr())));
|
||||
spread_left = Some((decl.clone(), pattern));
|
||||
} else {
|
||||
spread_right =
|
||||
Some((decl, self.check_pattern_expr(spreading.expr())));
|
||||
spread_right = Some((decl.clone(), pattern));
|
||||
}
|
||||
|
||||
self.resolve_as(Decl::as_def(&decl, None));
|
||||
self.scope_mut()
|
||||
.insert_mut(decl.name().clone(), decl.into());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue