diff options
| author | y21 <30553356+y21@users.noreply.github.com> | 2023-07-04 00:49:18 +0200 |
|---|---|---|
| committer | y21 <30553356+y21@users.noreply.github.com> | 2023-07-11 08:41:36 +0200 |
| commit | 0b5dac09757237a407a1cdfbff16eeb4606f6390 (patch) | |
| tree | 1a952d6110dc07d784a8c5df8a1b9ea034bd8b5f | |
| parent | cd1c8532e99c4c594c6704be6d4274131bb71004 (diff) | |
| download | rust-0b5dac09757237a407a1cdfbff16eeb4606f6390.tar.gz rust-0b5dac09757237a407a1cdfbff16eeb4606f6390.zip | |
[`unnecessary_literal_unwrap`]: also handle unwrap_err_unchecked
| -rw-r--r-- | clippy_lints/src/methods/mod.rs | 5 | ||||
| -rw-r--r-- | clippy_lints/src/methods/unnecessary_literal_unwrap.rs | 2 | ||||
| -rw-r--r-- | tests/ui/unnecessary_literal_unwrap.fixed | 1 | ||||
| -rw-r--r-- | tests/ui/unnecessary_literal_unwrap.rs | 1 | ||||
| -rw-r--r-- | tests/ui/unnecessary_literal_unwrap.stderr | 14 |
5 files changed, 17 insertions, 6 deletions
diff --git a/clippy_lints/src/methods/mod.rs b/clippy_lints/src/methods/mod.rs index 6e936e92cbd..d6057ce45f6 100644 --- a/clippy_lints/src/methods/mod.rs +++ b/clippy_lints/src/methods/mod.rs @@ -4000,9 +4000,6 @@ impl Methods { unnecessary_literal_unwrap::check(cx, expr, recv, name, args); unwrap_used::check(cx, expr, recv, false, self.allow_unwrap_in_tests); }, - ("unwrap_unchecked", []) => { - unnecessary_literal_unwrap::check(cx, expr, recv, name, args); - } ("unwrap_err", []) => { unnecessary_literal_unwrap::check(cx, expr, recv, name, args); unwrap_used::check(cx, expr, recv, true, self.allow_unwrap_in_tests); @@ -4022,7 +4019,7 @@ impl Methods { } unnecessary_literal_unwrap::check(cx, expr, recv, name, args); }, - ("unwrap_or_default", []) => { + ("unwrap_or_default" | "unwrap_unchecked" | "unwrap_err_unchecked", []) => { unnecessary_literal_unwrap::check(cx, expr, recv, name, args); } ("unwrap_or_else", [u_arg]) => { diff --git a/clippy_lints/src/methods/unnecessary_literal_unwrap.rs b/clippy_lints/src/methods/unnecessary_literal_unwrap.rs index 13895b67ed0..54de300e6bc 100644 --- a/clippy_lints/src/methods/unnecessary_literal_unwrap.rs +++ b/clippy_lints/src/methods/unnecessary_literal_unwrap.rs @@ -67,7 +67,7 @@ pub(super) fn check( (expr.span.with_hi(args[0].span.lo()), "panic!(".to_string()), (expr.span.with_lo(args[0].span.hi()), ")".to_string()), ]), - ("Some" | "Ok", "unwrap_unchecked", _) => { + ("Some" | "Ok", "unwrap_unchecked", _) | ("Err", "unwrap_err_unchecked", _) => { let mut suggs = vec![ (recv.span.with_hi(call_args[0].span.lo()), String::new()), (expr.span.with_lo(call_args[0].span.hi()), String::new()), diff --git a/tests/ui/unnecessary_literal_unwrap.fixed b/tests/ui/unnecessary_literal_unwrap.fixed index 0e7ba6bcbbb..276cd800b89 100644 --- a/tests/ui/unnecessary_literal_unwrap.fixed +++ b/tests/ui/unnecessary_literal_unwrap.fixed @@ -85,6 +85,7 @@ fn unwrap_unchecked() { let _ = 1; let _ = unsafe { 1 + *(&1 as *const i32) }; let _ = 1 + 1; + let _ = 123; } fn main() { diff --git a/tests/ui/unnecessary_literal_unwrap.rs b/tests/ui/unnecessary_literal_unwrap.rs index fda7fd36ff9..3065778d779 100644 --- a/tests/ui/unnecessary_literal_unwrap.rs +++ b/tests/ui/unnecessary_literal_unwrap.rs @@ -85,6 +85,7 @@ fn unwrap_unchecked() { let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() }; let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() + *(&1 as *const i32) }; let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() } + 1; + let _ = unsafe { Err::<(), i32>(123).unwrap_err_unchecked() }; } fn main() { diff --git a/tests/ui/unnecessary_literal_unwrap.stderr b/tests/ui/unnecessary_literal_unwrap.stderr index e5b93c3d9af..5823313b736 100644 --- a/tests/ui/unnecessary_literal_unwrap.stderr +++ b/tests/ui/unnecessary_literal_unwrap.stderr @@ -481,5 +481,17 @@ LL - let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() } + 1; LL + let _ = 1 + 1; | -error: aborting due to 42 previous errors +error: used `unwrap_err_unchecked()` on `Err` value + --> $DIR/unnecessary_literal_unwrap.rs:88:22 + | +LL | let _ = unsafe { Err::<(), i32>(123).unwrap_err_unchecked() }; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: remove the `Err` and `unwrap_err_unchecked()` + | +LL - let _ = unsafe { Err::<(), i32>(123).unwrap_err_unchecked() }; +LL + let _ = 123; + | + +error: aborting due to 43 previous errors |
