save-analysis: fix issue with sub-exprs in for loops

Fixes https://github.com/nrc/rls-analysis/issues/78
This commit is contained in:
Nick Cameron 2017-11-02 14:35:39 +13:00
parent 20c64e8155
commit 5d3be12a4d

View file

@ -1415,15 +1415,15 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> Visitor<'l> for DumpVisitor<'l, 'tc
let value = self.span.snippet(subexpression.span); let value = self.span.snippet(subexpression.span);
self.process_var_decl(pattern, value); self.process_var_decl(pattern, value);
debug!("for loop, walk sub-expr: {:?}", subexpression.node); debug!("for loop, walk sub-expr: {:?}", subexpression.node);
visit::walk_expr(self, subexpression); self.visit_expr(subexpression);
visit::walk_block(self, block); visit::walk_block(self, block);
} }
ast::ExprKind::IfLet(ref pattern, ref subexpression, ref block, ref opt_else) => { ast::ExprKind::IfLet(ref pattern, ref subexpression, ref block, ref opt_else) => {
let value = self.span.snippet(subexpression.span); let value = self.span.snippet(subexpression.span);
self.process_var_decl(pattern, value); self.process_var_decl(pattern, value);
visit::walk_expr(self, subexpression); self.visit_expr(subexpression);
visit::walk_block(self, block); visit::walk_block(self, block);
opt_else.as_ref().map(|el| visit::walk_expr(self, el)); opt_else.as_ref().map(|el| self.visit_expr(el));
} }
ast::ExprKind::Repeat(ref element, ref count) => { ast::ExprKind::Repeat(ref element, ref count) => {
self.visit_expr(element); self.visit_expr(element);