mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-15 01:17:16 +00:00
Auto merge of #5508 - lzutao:rustup-71044, r=phansch
Rustup "Remove `BodyAndCache`" cc https://github.com/rust-lang/rust/pull/71044 changelog: none
This commit is contained in:
commit
d01a49810b
1 changed files with 3 additions and 4 deletions
|
@ -85,7 +85,6 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for RedundantClone {
|
||||||
}
|
}
|
||||||
|
|
||||||
let mir = cx.tcx.optimized_mir(def_id.to_def_id());
|
let mir = cx.tcx.optimized_mir(def_id.to_def_id());
|
||||||
let mir_read_only = mir.unwrap_read_only();
|
|
||||||
|
|
||||||
let maybe_storage_live_result = MaybeStorageLive
|
let maybe_storage_live_result = MaybeStorageLive
|
||||||
.into_engine(cx.tcx, mir, def_id.to_def_id())
|
.into_engine(cx.tcx, mir, def_id.to_def_id())
|
||||||
|
@ -93,7 +92,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for RedundantClone {
|
||||||
.into_results_cursor(mir);
|
.into_results_cursor(mir);
|
||||||
let mut possible_borrower = {
|
let mut possible_borrower = {
|
||||||
let mut vis = PossibleBorrowerVisitor::new(cx, mir);
|
let mut vis = PossibleBorrowerVisitor::new(cx, mir);
|
||||||
vis.visit_body(&mir_read_only);
|
vis.visit_body(&mir);
|
||||||
vis.into_map(cx, maybe_storage_live_result)
|
vis.into_map(cx, maybe_storage_live_result)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -146,7 +145,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for RedundantClone {
|
||||||
// `arg` is a reference as it is `.deref()`ed in the previous block.
|
// `arg` is a reference as it is `.deref()`ed in the previous block.
|
||||||
// Look into the predecessor block and find out the source of deref.
|
// Look into the predecessor block and find out the source of deref.
|
||||||
|
|
||||||
let ps = mir_read_only.predecessors_for(bb);
|
let ps = &mir.predecessors()[bb];
|
||||||
if ps.len() != 1 {
|
if ps.len() != 1 {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -191,7 +190,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for RedundantClone {
|
||||||
(local, deref_clone_ret)
|
(local, deref_clone_ret)
|
||||||
};
|
};
|
||||||
|
|
||||||
let is_temp = mir_read_only.local_kind(ret_local) == mir::LocalKind::Temp;
|
let is_temp = mir.local_kind(ret_local) == mir::LocalKind::Temp;
|
||||||
|
|
||||||
// 1. `local` can be moved out if it is not used later.
|
// 1. `local` can be moved out if it is not used later.
|
||||||
// 2. If `ret_local` is a temporary and is neither consumed nor mutated, we can remove this `clone`
|
// 2. If `ret_local` is a temporary and is neither consumed nor mutated, we can remove this `clone`
|
||||||
|
|
Loading…
Reference in a new issue