about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJaeyong Sung <jaeyong0201@gmail.com>2022-03-14 00:13:57 +0900
committerJaeyong Sung <jaeyong0201@gmail.com>2022-03-14 00:13:57 +0900
commit800f66de2bea7672e03ffa2be457ef06d91cce83 (patch)
tree2bbdeaae84fbe4623272a7feecbbc2b22319e3ba
parent1ad7e7097ae9274d74b16899e25c65d125159bd4 (diff)
downloadrust-800f66de2bea7672e03ffa2be457ef06d91cce83.tar.gz
rust-800f66de2bea7672e03ffa2be457ef06d91cce83.zip
add clearing return vars
-rw-r--r--clippy_lints/src/only_used_in_recursion.rs8
1 files 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 2e5e990be44..b828d9334ee 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