Fix incorrect swap suggestion

Clippy suggests using swap on fields belonging to the same owner
causing two mutable borrows of the owner

Fixes #981

Signed-off-by: Cristian Kubis <cristian.kubis@tsunix.de>
This commit is contained in:
Cristian Kubis 2019-08-31 18:50:22 +02:00
parent a3fcaee562
commit 8bc1ded805

View file

@ -118,6 +118,14 @@ fn check_manual_swap(cx: &LateContext<'_, '_>, block: &Block) {
None
}
if let ExprKind::Field(ref lhs1, _) = lhs1.node {
if let ExprKind::Field(ref lhs2, _) = lhs2.node {
if lhs1.hir_id.owner_def_id() == lhs2.hir_id.owner_def_id() {
return;
}
}
}
let (replace, what, sugg) = if let Some((slice, idx1, idx2)) = check_for_slice(cx, lhs1, lhs2) {
if let Some(slice) = Sugg::hir_opt(cx, slice) {
(false,