Add let-else to AST
This commit is contained in:
parent
6f388bb369
commit
89d2600d01
10 changed files with 92 additions and 26 deletions
|
@ -454,7 +454,7 @@ impl<'a: 'ast, 'ast> Visitor<'ast> for LateResolutionVisitor<'a, '_, 'ast> {
|
|||
_ => Some((
|
||||
local.pat.span,
|
||||
local.ty.as_ref().map(|ty| ty.span),
|
||||
local.init.as_ref().map(|init| init.span),
|
||||
local.kind.init().map(|init| init.span),
|
||||
)),
|
||||
};
|
||||
let original = replace(&mut self.diagnostic_metadata.current_let_binding, local_spans);
|
||||
|
@ -1426,7 +1426,14 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
|
|||
walk_list!(self, visit_ty, &local.ty);
|
||||
|
||||
// Resolve the initializer.
|
||||
walk_list!(self, visit_expr, &local.init);
|
||||
if let Some((init, els)) = local.kind.init_else_opt() {
|
||||
self.visit_expr(init);
|
||||
|
||||
// Resolve the `else` block
|
||||
if let Some(els) = els {
|
||||
self.visit_block(els);
|
||||
}
|
||||
}
|
||||
|
||||
// Resolve the pattern.
|
||||
self.resolve_pattern_top(&local.pat, PatternSource::Let);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue