diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2020-10-17 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2020-10-26 10:48:28 +0100 |
| commit | 4c3e06a0ba557c5915d8c00f23455461549f07f6 (patch) | |
| tree | e0b64a5783458c55f6c30a60969b3268055bc5ba /compiler | |
| parent | 52d37826858ee4dad6b66a3060994f41df247770 (diff) | |
| download | rust-4c3e06a0ba557c5915d8c00f23455461549f07f6.tar.gz rust-4c3e06a0ba557c5915d8c00f23455461549f07f6.zip | |
simplify-locals: Remove unused assignments regardless of rvalue kind
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_mir/src/transform/simplify.rs | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/compiler/rustc_mir/src/transform/simplify.rs b/compiler/rustc_mir/src/transform/simplify.rs index 183111877d1..b7c9a3a8688 100644 --- a/compiler/rustc_mir/src/transform/simplify.rs +++ b/compiler/rustc_mir/src/transform/simplify.rs @@ -439,31 +439,7 @@ impl Visitor<'_> for UsedLocals { StatementKind::StorageLive(_local) | StatementKind::StorageDead(_local) => {} StatementKind::Assign(box (ref place, ref rvalue)) => { - let can_skip = match rvalue { - Rvalue::Use(_) - | Rvalue::Discriminant(_) - | Rvalue::BinaryOp(_, _, _) - | Rvalue::CheckedBinaryOp(_, _, _) - | Rvalue::Repeat(_, _) - | Rvalue::AddressOf(_, _) - | Rvalue::Len(_) - | Rvalue::UnaryOp(_, _) - | Rvalue::Aggregate(_, _) => true, - - Rvalue::Ref(..) - | Rvalue::ThreadLocalRef(..) - | Rvalue::Cast(..) - | Rvalue::NullaryOp(..) => false, - }; - if can_skip { - self.visit_lhs(place, location); - } else { - self.visit_place( - place, - PlaceContext::MutatingUse(MutatingUseContext::Store), - location, - ); - } + self.visit_lhs(place, location); self.visit_rvalue(rvalue, location); } |
