From 800f66de2bea7672e03ffa2be457ef06d91cce83 Mon Sep 17 00:00:00 2001 From: Jaeyong Sung Date: Mon, 14 Mar 2022 00:13:57 +0900 Subject: [PATCH] add clearing return vars --- clippy_lints/src/only_used_in_recursion.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/clippy_lints/src/only_used_in_recursion.rs b/clippy_lints/src/only_used_in_recursion.rs index 2e5e990be447..b828d9334ee0 100644 --- a/clippy_lints/src/only_used_in_recursion.rs +++ b/clippy_lints/src/only_used_in_recursion.rs @@ -268,18 +268,22 @@ impl<'tcx> Visitor<'tcx> for SideEffectVisit<'tcx> { pat, init: Some(init), .. }) => { self.visit_pat_expr(pat, init, false); + self.ret_vars.clear(); }, StmtKind::Item(i) => { let item = self.ty_ctx.hir().item(i); self.visit_item(item); + self.ret_vars.clear(); + }, + StmtKind::Expr(e) | StmtKind::Semi(e) => { + self.visit_expr(e); + self.ret_vars.clear(); }, - StmtKind::Expr(e) | StmtKind::Semi(e) => self.visit_expr(e), StmtKind::Local(_) => {}, } } fn visit_expr(&mut self, ex: &'tcx Expr<'tcx>) { - debug_assert!(self.ret_vars.is_empty()); match ex.kind { ExprKind::Array(exprs) | ExprKind::Tup(exprs) => { self.ret_vars = exprs