about summary refs log tree commit diff
path: root/clippy_lints
diff options
context:
space:
mode:
authorTomasz Miąsko <tomasz.miasko@gmail.com>2020-08-16 00:00:00 +0000
committerTomasz Miąsko <tomasz.miasko@gmail.com>2020-08-16 23:31:27 +0200
commitd1dbf7913ad83954337e94b094f22f1d9d8b83f3 (patch)
tree3530370f178218d6b557047f4ee3069fa929f99d /clippy_lints
parent9b800b1e929d6023e1813b2b189336a4bddcffd7 (diff)
Expresions with Assign / AssignOp have side effects
Diffstat (limited to 'clippy_lints')
-rw-r--r--clippy_lints/src/utils/hir_utils.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/clippy_lints/src/utils/hir_utils.rs b/clippy_lints/src/utils/hir_utils.rs
index 1014546ff89..cacc9f8d6f2 100644
--- a/clippy_lints/src/utils/hir_utils.rs
+++ b/clippy_lints/src/utils/hir_utils.rs
@@ -89,10 +89,10 @@ impl<'a, 'tcx> SpanlessEq<'a, 'tcx> {
                 both(&li.label, &ri.label, |l, r| l.ident.as_str() == r.ident.as_str())
             },
             (&ExprKind::Assign(ref ll, ref lr, _), &ExprKind::Assign(ref rl, ref rr, _)) => {
-                self.eq_expr(ll, rl) && self.eq_expr(lr, rr)
+                self.allow_side_effects && self.eq_expr(ll, rl) && self.eq_expr(lr, rr)
             },
             (&ExprKind::AssignOp(ref lo, ref ll, ref lr), &ExprKind::AssignOp(ref ro, ref rl, ref rr)) => {
-                lo.node == ro.node && self.eq_expr(ll, rl) && self.eq_expr(lr, rr)
+                self.allow_side_effects && lo.node == ro.node && self.eq_expr(ll, rl) && self.eq_expr(lr, rr)
             },
             (&ExprKind::Block(ref l, _), &ExprKind::Block(ref r, _)) => self.eq_block(l, r),
             (&ExprKind::Binary(l_op, ref ll, ref lr), &ExprKind::Binary(r_op, ref rl, ref rr)) => {