Run the analysis process only once per closure, on the way up the tree.
This was the intention before but silly coding caused it to run twice if there are nested closures.
This commit is contained in:
parent
1e2677be72
commit
6b49f4ded7
1 changed files with 2 additions and 3 deletions
|
|
@ -183,9 +183,8 @@ impl<'a,'tcx> AdjustBorrowKind<'a,'tcx> {
|
|||
* Analysis starting point.
|
||||
*/
|
||||
|
||||
self.visit_block(body);
|
||||
debug!("analyze_closure(id={:?}, body.id={:?})", id, body.id);
|
||||
|
||||
debug!("analyzing closure `{}` with fn body id `{}`", id, body.id);
|
||||
|
||||
let mut euv = euv::ExprUseVisitor::new(self, self.fcx.infcx());
|
||||
euv.walk_fn(decl, body);
|
||||
|
|
@ -485,8 +484,8 @@ impl<'a, 'tcx, 'v> Visitor<'v> for AdjustBorrowKind<'a, 'tcx> {
|
|||
// ignore nested fn items
|
||||
}
|
||||
visit::FkFnBlock => {
|
||||
self.analyze_closure(id, decl, body);
|
||||
visit::walk_fn(self, fn_kind, decl, body, span);
|
||||
self.analyze_closure(id, span, decl, body);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue