[identity_op]: Fix duplicate errors

This commit is contained in:
kcz 2024-03-03 19:25:51 -05:00
parent 30642113b2
commit 3b9939e83b
No known key found for this signature in database
GPG key ID: 4D8C63ADDD1637A0
4 changed files with 78 additions and 81 deletions

View file

@ -42,7 +42,7 @@ pub(crate) fn check<'tcx>(
match op { match op {
BinOpKind::Add | BinOpKind::BitOr | BinOpKind::BitXor => { BinOpKind::Add | BinOpKind::BitOr | BinOpKind::BitXor => {
check_op( let _ = check_op(
cx, cx,
left, left,
0, 0,
@ -50,8 +50,7 @@ pub(crate) fn check<'tcx>(
peeled_right_span, peeled_right_span,
needs_parenthesis(cx, expr, right), needs_parenthesis(cx, expr, right),
right_is_coerced_to_value, right_is_coerced_to_value,
); ) || check_op(
check_op(
cx, cx,
right, right,
0, 0,
@ -62,7 +61,7 @@ pub(crate) fn check<'tcx>(
); );
}, },
BinOpKind::Shl | BinOpKind::Shr | BinOpKind::Sub => { BinOpKind::Shl | BinOpKind::Shr | BinOpKind::Sub => {
check_op( let _ = check_op(
cx, cx,
right, right,
0, 0,
@ -73,7 +72,7 @@ pub(crate) fn check<'tcx>(
); );
}, },
BinOpKind::Mul => { BinOpKind::Mul => {
check_op( let _ = check_op(
cx, cx,
left, left,
1, 1,
@ -81,8 +80,18 @@ pub(crate) fn check<'tcx>(
peeled_right_span, peeled_right_span,
needs_parenthesis(cx, expr, right), needs_parenthesis(cx, expr, right),
right_is_coerced_to_value, right_is_coerced_to_value,
); ) || check_op(
check_op( cx,
right,
1,
expr.span,
peeled_left_span,
Parens::Unneeded,
left_is_coerced_to_value,
);
},
BinOpKind::Div => {
let _ = check_op(
cx, cx,
right, right,
1, 1,
@ -92,17 +101,8 @@ pub(crate) fn check<'tcx>(
left_is_coerced_to_value, left_is_coerced_to_value,
); );
}, },
BinOpKind::Div => check_op(
cx,
right,
1,
expr.span,
peeled_left_span,
Parens::Unneeded,
left_is_coerced_to_value,
),
BinOpKind::BitAnd => { BinOpKind::BitAnd => {
check_op( let _ = check_op(
cx, cx,
left, left,
-1, -1,
@ -110,8 +110,7 @@ pub(crate) fn check<'tcx>(
peeled_right_span, peeled_right_span,
needs_parenthesis(cx, expr, right), needs_parenthesis(cx, expr, right),
right_is_coerced_to_value, right_is_coerced_to_value,
); ) || check_op(
check_op(
cx, cx,
right, right,
-1, -1,
@ -201,12 +200,12 @@ fn check_remainder(cx: &LateContext<'_>, left: &Expr<'_>, right: &Expr<'_>, span
} }
} }
fn check_op(cx: &LateContext<'_>, e: &Expr<'_>, m: i8, span: Span, arg: Span, parens: Parens, is_erased: bool) { fn check_op(cx: &LateContext<'_>, e: &Expr<'_>, m: i8, span: Span, arg: Span, parens: Parens, is_erased: bool) -> bool {
if let Some(Constant::Int(v)) = constant_simple(cx, cx.typeck_results(), e).map(Constant::peel_refs) { if let Some(Constant::Int(v)) = constant_simple(cx, cx.typeck_results(), e).map(Constant::peel_refs) {
let check = match *cx.typeck_results().expr_ty(e).peel_refs().kind() { let check = match *cx.typeck_results().expr_ty(e).peel_refs().kind() {
ty::Int(ity) => unsext(cx.tcx, -1_i128, ity), ty::Int(ity) => unsext(cx.tcx, -1_i128, ity),
ty::Uint(uty) => clip(cx.tcx, !0, uty), ty::Uint(uty) => clip(cx.tcx, !0, uty),
_ => return, _ => return false,
}; };
if match m { if match m {
0 => v == 0, 0 => v == 0,
@ -215,8 +214,10 @@ fn check_op(cx: &LateContext<'_>, e: &Expr<'_>, m: i8, span: Span, arg: Span, pa
_ => unreachable!(), _ => unreachable!(),
} { } {
span_ineffective_operation(cx, span, arg, parens, is_erased); span_ineffective_operation(cx, span, arg, parens, is_erased);
return true;
} }
} }
false
} }
fn span_ineffective_operation( fn span_ineffective_operation(

View file

@ -1,5 +1,3 @@
//@compile-flags: -Zdeduplicate-diagnostics=yes
#![warn(clippy::identity_op)] #![warn(clippy::identity_op)]
#![allow(unused)] #![allow(unused)]
#![allow( #![allow(

View file

@ -1,5 +1,3 @@
//@compile-flags: -Zdeduplicate-diagnostics=yes
#![warn(clippy::identity_op)] #![warn(clippy::identity_op)]
#![allow(unused)] #![allow(unused)]
#![allow( #![allow(

View file

@ -1,5 +1,5 @@
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:46:5 --> tests/ui/identity_op.rs:44:5
| |
LL | x + 0; LL | x + 0;
| ^^^^^ help: consider reducing it to: `x` | ^^^^^ help: consider reducing it to: `x`
@ -8,310 +8,310 @@ LL | x + 0;
= help: to override `-D warnings` add `#[allow(clippy::identity_op)]` = help: to override `-D warnings` add `#[allow(clippy::identity_op)]`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:48:5 --> tests/ui/identity_op.rs:46:5
| |
LL | x + (1 - 1); LL | x + (1 - 1);
| ^^^^^^^^^^^ help: consider reducing it to: `x` | ^^^^^^^^^^^ help: consider reducing it to: `x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:51:5 --> tests/ui/identity_op.rs:49:5
| |
LL | 0 + x; LL | 0 + x;
| ^^^^^ help: consider reducing it to: `x` | ^^^^^ help: consider reducing it to: `x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:55:5 --> tests/ui/identity_op.rs:53:5
| |
LL | x | (0); LL | x | (0);
| ^^^^^^^ help: consider reducing it to: `x` | ^^^^^^^ help: consider reducing it to: `x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:59:5 --> tests/ui/identity_op.rs:57:5
| |
LL | x * 1; LL | x * 1;
| ^^^^^ help: consider reducing it to: `x` | ^^^^^ help: consider reducing it to: `x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:61:5 --> tests/ui/identity_op.rs:59:5
| |
LL | 1 * x; LL | 1 * x;
| ^^^^^ help: consider reducing it to: `x` | ^^^^^ help: consider reducing it to: `x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:68:5 --> tests/ui/identity_op.rs:66:5
| |
LL | -1 & x; LL | -1 & x;
| ^^^^^^ help: consider reducing it to: `x` | ^^^^^^ help: consider reducing it to: `x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:72:5 --> tests/ui/identity_op.rs:70:5
| |
LL | u & 255; LL | u & 255;
| ^^^^^^^ help: consider reducing it to: `u` | ^^^^^^^ help: consider reducing it to: `u`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:76:5 --> tests/ui/identity_op.rs:74:5
| |
LL | 42 << 0; LL | 42 << 0;
| ^^^^^^^ help: consider reducing it to: `42` | ^^^^^^^ help: consider reducing it to: `42`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:78:5 --> tests/ui/identity_op.rs:76:5
| |
LL | 1 >> 0; LL | 1 >> 0;
| ^^^^^^ help: consider reducing it to: `1` | ^^^^^^ help: consider reducing it to: `1`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:80:5 --> tests/ui/identity_op.rs:78:5
| |
LL | 42 >> 0; LL | 42 >> 0;
| ^^^^^^^ help: consider reducing it to: `42` | ^^^^^^^ help: consider reducing it to: `42`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:82:5 --> tests/ui/identity_op.rs:80:5
| |
LL | &x >> 0; LL | &x >> 0;
| ^^^^^^^ help: consider reducing it to: `x` | ^^^^^^^ help: consider reducing it to: `x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:84:5 --> tests/ui/identity_op.rs:82:5
| |
LL | x >> &0; LL | x >> &0;
| ^^^^^^^ help: consider reducing it to: `x` | ^^^^^^^ help: consider reducing it to: `x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:92:5 --> tests/ui/identity_op.rs:90:5
| |
LL | 2 % 3; LL | 2 % 3;
| ^^^^^ help: consider reducing it to: `2` | ^^^^^ help: consider reducing it to: `2`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:94:5 --> tests/ui/identity_op.rs:92:5
| |
LL | -2 % 3; LL | -2 % 3;
| ^^^^^^ help: consider reducing it to: `-2` | ^^^^^^ help: consider reducing it to: `-2`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:96:5 --> tests/ui/identity_op.rs:94:5
| |
LL | 2 % -3 + x; LL | 2 % -3 + x;
| ^^^^^^ help: consider reducing it to: `2` | ^^^^^^ help: consider reducing it to: `2`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:98:5 --> tests/ui/identity_op.rs:96:5
| |
LL | -2 % -3 + x; LL | -2 % -3 + x;
| ^^^^^^^ help: consider reducing it to: `-2` | ^^^^^^^ help: consider reducing it to: `-2`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:100:9 --> tests/ui/identity_op.rs:98:9
| |
LL | x + 1 % 3; LL | x + 1 % 3;
| ^^^^^ help: consider reducing it to: `1` | ^^^^^ help: consider reducing it to: `1`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:109:5 --> tests/ui/identity_op.rs:107:5
| |
LL | 0 + if b { 1 } else { 2 }; LL | 0 + if b { 1 } else { 2 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(if b { 1 } else { 2 })` | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(if b { 1 } else { 2 })`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:111:5 --> tests/ui/identity_op.rs:109:5
| |
LL | 0 + if b { 1 } else { 2 } + if b { 3 } else { 4 }; LL | 0 + if b { 1 } else { 2 } + if b { 3 } else { 4 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(if b { 1 } else { 2 })` | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(if b { 1 } else { 2 })`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:113:5 --> tests/ui/identity_op.rs:111:5
| |
LL | 0 + match a { 0 => 10, _ => 20 }; LL | 0 + match a { 0 => 10, _ => 20 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(match a { 0 => 10, _ => 20 })` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(match a { 0 => 10, _ => 20 })`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:115:5 --> tests/ui/identity_op.rs:113:5
| |
LL | 0 + match a { 0 => 10, _ => 20 } + match a { 0 => 30, _ => 40 }; LL | 0 + match a { 0 => 10, _ => 20 } + match a { 0 => 30, _ => 40 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(match a { 0 => 10, _ => 20 })` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(match a { 0 => 10, _ => 20 })`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:117:5 --> tests/ui/identity_op.rs:115:5
| |
LL | 0 + if b { 1 } else { 2 } + match a { 0 => 30, _ => 40 }; LL | 0 + if b { 1 } else { 2 } + match a { 0 => 30, _ => 40 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(if b { 1 } else { 2 })` | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(if b { 1 } else { 2 })`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:119:5 --> tests/ui/identity_op.rs:117:5
| |
LL | 0 + match a { 0 => 10, _ => 20 } + if b { 3 } else { 4 }; LL | 0 + match a { 0 => 10, _ => 20 } + if b { 3 } else { 4 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(match a { 0 => 10, _ => 20 })` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(match a { 0 => 10, _ => 20 })`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:121:5 --> tests/ui/identity_op.rs:119:5
| |
LL | (if b { 1 } else { 2 }) + 0; LL | (if b { 1 } else { 2 }) + 0;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(if b { 1 } else { 2 })` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(if b { 1 } else { 2 })`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:124:5 --> tests/ui/identity_op.rs:122:5
| |
LL | 0 + { a } + 3; LL | 0 + { a } + 3;
| ^^^^^^^^^ help: consider reducing it to: `({ a })` | ^^^^^^^^^ help: consider reducing it to: `({ a })`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:126:5 --> tests/ui/identity_op.rs:124:5
| |
LL | 0 + { a } * 2; LL | 0 + { a } * 2;
| ^^^^^^^^^^^^^ help: consider reducing it to: `({ a } * 2)` | ^^^^^^^^^^^^^ help: consider reducing it to: `({ a } * 2)`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:128:5 --> tests/ui/identity_op.rs:126:5
| |
LL | 0 + loop { let mut c = 0; if c == 10 { break c; } c += 1; } + { a * 2 }; LL | 0 + loop { let mut c = 0; if c == 10 { break c; } c += 1; } + { a * 2 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(loop { let mut c = 0; if c == 10 { break c; } c += 1; })` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(loop { let mut c = 0; if c == 10 { break c; } c += 1; })`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:135:7 --> tests/ui/identity_op.rs:133:7
| |
LL | f(1 * a + { 8 * 5 }); LL | f(1 * a + { 8 * 5 });
| ^^^^^ help: consider reducing it to: `a` | ^^^^^ help: consider reducing it to: `a`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:137:7 --> tests/ui/identity_op.rs:135:7
| |
LL | f(0 + if b { 1 } else { 2 } + 3); LL | f(0 + if b { 1 } else { 2 } + 3);
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `if b { 1 } else { 2 }` | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `if b { 1 } else { 2 }`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:140:20 --> tests/ui/identity_op.rs:138:20
| |
LL | const _: i32 = { 2 * 4 } + 0 + 3; LL | const _: i32 = { 2 * 4 } + 0 + 3;
| ^^^^^^^^^^^^^ help: consider reducing it to: `{ 2 * 4 }` | ^^^^^^^^^^^^^ help: consider reducing it to: `{ 2 * 4 }`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:142:20 --> tests/ui/identity_op.rs:140:20
| |
LL | const _: i32 = 0 + { 1 + 2 * 3 } + 3; LL | const _: i32 = 0 + { 1 + 2 * 3 } + 3;
| ^^^^^^^^^^^^^^^^^ help: consider reducing it to: `{ 1 + 2 * 3 }` | ^^^^^^^^^^^^^^^^^ help: consider reducing it to: `{ 1 + 2 * 3 }`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:145:5 --> tests/ui/identity_op.rs:143:5
| |
LL | 0 + a as usize; LL | 0 + a as usize;
| ^^^^^^^^^^^^^^ help: consider reducing it to: `a as usize` | ^^^^^^^^^^^^^^ help: consider reducing it to: `a as usize`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:147:13 --> tests/ui/identity_op.rs:145:13
| |
LL | let _ = 0 + a as usize; LL | let _ = 0 + a as usize;
| ^^^^^^^^^^^^^^ help: consider reducing it to: `a as usize` | ^^^^^^^^^^^^^^ help: consider reducing it to: `a as usize`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:149:5 --> tests/ui/identity_op.rs:147:5
| |
LL | 0 + { a } as usize; LL | 0 + { a } as usize;
| ^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `({ a } as usize)` | ^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `({ a } as usize)`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:152:9 --> tests/ui/identity_op.rs:150:9
| |
LL | 2 * (0 + { a }); LL | 2 * (0 + { a });
| ^^^^^^^^^^^ help: consider reducing it to: `{ a }` | ^^^^^^^^^^^ help: consider reducing it to: `{ a }`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:154:5 --> tests/ui/identity_op.rs:152:5
| |
LL | 1 * ({ a } + 4); LL | 1 * ({ a } + 4);
| ^^^^^^^^^^^^^^^ help: consider reducing it to: `(({ a } + 4))` | ^^^^^^^^^^^^^^^ help: consider reducing it to: `(({ a } + 4))`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:156:5 --> tests/ui/identity_op.rs:154:5
| |
LL | 1 * 1; LL | 1 * 1;
| ^^^^^ help: consider reducing it to: `1` | ^^^^^ help: consider reducing it to: `1`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:161:18 --> tests/ui/identity_op.rs:159:18
| |
LL | let _: i32 = &x + 0; LL | let _: i32 = &x + 0;
| ^^^^^^ help: consider reducing it to: `x` | ^^^^^^ help: consider reducing it to: `x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:166:5 --> tests/ui/identity_op.rs:164:5
| |
LL | 0 + if a { 1 } else { 2 } + if b { 3 } else { 5 } LL | 0 + if a { 1 } else { 2 } + if b { 3 } else { 5 }
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(if a { 1 } else { 2 })` | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(if a { 1 } else { 2 })`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:177:22 --> tests/ui/identity_op.rs:175:22
| |
LL | let _: i32 = *x + 0; LL | let _: i32 = *x + 0;
| ^^^^^^ help: consider reducing it to: `*x` | ^^^^^^ help: consider reducing it to: `*x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:179:22 --> tests/ui/identity_op.rs:177:22
| |
LL | let _: i32 = x + 0; LL | let _: i32 = x + 0;
| ^^^^^ help: consider reducing it to: `*x` | ^^^^^ help: consider reducing it to: `*x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:184:22 --> tests/ui/identity_op.rs:182:22
| |
LL | let _: i32 = **x + 0; LL | let _: i32 = **x + 0;
| ^^^^^^^ help: consider reducing it to: `**x` | ^^^^^^^ help: consider reducing it to: `**x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:187:22 --> tests/ui/identity_op.rs:185:22
| |
LL | let _: i32 = *x + 0; LL | let _: i32 = *x + 0;
| ^^^^^^ help: consider reducing it to: `**x` | ^^^^^^ help: consider reducing it to: `**x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:193:22 --> tests/ui/identity_op.rs:191:22
| |
LL | let _: i32 = ***x + 0; LL | let _: i32 = ***x + 0;
| ^^^^^^^^ help: consider reducing it to: `***x` | ^^^^^^^^ help: consider reducing it to: `***x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:195:22 --> tests/ui/identity_op.rs:193:22
| |
LL | let _: i32 = **x + 0; LL | let _: i32 = **x + 0;
| ^^^^^^^ help: consider reducing it to: `***x` | ^^^^^^^ help: consider reducing it to: `***x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:198:22 --> tests/ui/identity_op.rs:196:22
| |
LL | let _: i32 = *&x + 0; LL | let _: i32 = *&x + 0;
| ^^^^^^^ help: consider reducing it to: `*&x` | ^^^^^^^ help: consider reducing it to: `*&x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:200:22 --> tests/ui/identity_op.rs:198:22
| |
LL | let _: i32 = **&&x + 0; LL | let _: i32 = **&&x + 0;
| ^^^^^^^^^ help: consider reducing it to: `**&&x` | ^^^^^^^^^ help: consider reducing it to: `**&&x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:202:22 --> tests/ui/identity_op.rs:200:22
| |
LL | let _: i32 = *&*&x + 0; LL | let _: i32 = *&*&x + 0;
| ^^^^^^^^^ help: consider reducing it to: `*&*&x` | ^^^^^^^^^ help: consider reducing it to: `*&*&x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:204:22 --> tests/ui/identity_op.rs:202:22
| |
LL | let _: i32 = **&&*&x + 0; LL | let _: i32 = **&&*&x + 0;
| ^^^^^^^^^^^ help: consider reducing it to: `**&&*&x` | ^^^^^^^^^^^ help: consider reducing it to: `**&&*&x`
error: this operation has no effect
--> tests/ui/identity_op.rs:209:22
|
LL | let _: i32 = **&&*&x + 0;
| ^^^^^^^^^^^ help: consider reducing it to: `***&&*&x`
error: this operation has no effect error: this operation has no effect
--> tests/ui/identity_op.rs:211:22 --> tests/ui/identity_op.rs:211:22
| |
LL | let _: i32 = **&&*&x + 0; LL | let _: i32 = **&&*&x + 0;
| ^^^^^^^^^^^ help: consider reducing it to: `***&&*&x` | ^^^^^^^^^^^ help: consider reducing it to: `***&&*&x`
error: this operation has no effect
--> tests/ui/identity_op.rs:213:22
|
LL | let _: i32 = **&&*&x + 0;
| ^^^^^^^^^^^ help: consider reducing it to: `***&&*&x`
error: aborting due to 52 previous errors error: aborting due to 52 previous errors