Skip to content

Commit 0b5dac0

Browse files
committed
[unnecessary_literal_unwrap]: also handle unwrap_err_unchecked
1 parent cd1c853 commit 0b5dac0

File tree

5 files changed

+17
-6
lines changed

5 files changed

+17
-6
lines changed

clippy_lints/src/methods/mod.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4000,9 +4000,6 @@ impl Methods {
40004000
unnecessary_literal_unwrap::check(cx, expr, recv, name, args);
40014001
unwrap_used::check(cx, expr, recv, false, self.allow_unwrap_in_tests);
40024002
},
4003-
("unwrap_unchecked", []) => {
4004-
unnecessary_literal_unwrap::check(cx, expr, recv, name, args);
4005-
}
40064003
("unwrap_err", []) => {
40074004
unnecessary_literal_unwrap::check(cx, expr, recv, name, args);
40084005
unwrap_used::check(cx, expr, recv, true, self.allow_unwrap_in_tests);
@@ -4022,7 +4019,7 @@ impl Methods {
40224019
}
40234020
unnecessary_literal_unwrap::check(cx, expr, recv, name, args);
40244021
},
4025-
("unwrap_or_default", []) => {
4022+
("unwrap_or_default" | "unwrap_unchecked" | "unwrap_err_unchecked", []) => {
40264023
unnecessary_literal_unwrap::check(cx, expr, recv, name, args);
40274024
}
40284025
("unwrap_or_else", [u_arg]) => {

clippy_lints/src/methods/unnecessary_literal_unwrap.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ pub(super) fn check(
6767
(expr.span.with_hi(args[0].span.lo()), "panic!(".to_string()),
6868
(expr.span.with_lo(args[0].span.hi()), ")".to_string()),
6969
]),
70-
("Some" | "Ok", "unwrap_unchecked", _) => {
70+
("Some" | "Ok", "unwrap_unchecked", _) | ("Err", "unwrap_err_unchecked", _) => {
7171
let mut suggs = vec![
7272
(recv.span.with_hi(call_args[0].span.lo()), String::new()),
7373
(expr.span.with_lo(call_args[0].span.hi()), String::new()),

tests/ui/unnecessary_literal_unwrap.fixed

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ fn unwrap_unchecked() {
8585
let _ = 1;
8686
let _ = unsafe { 1 + *(&1 as *const i32) };
8787
let _ = 1 + 1;
88+
let _ = 123;
8889
}
8990

9091
fn main() {

tests/ui/unnecessary_literal_unwrap.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ fn unwrap_unchecked() {
8585
let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() };
8686
let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() + *(&1 as *const i32) };
8787
let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() } + 1;
88+
let _ = unsafe { Err::<(), i32>(123).unwrap_err_unchecked() };
8889
}
8990

9091
fn main() {

tests/ui/unnecessary_literal_unwrap.stderr

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,5 +481,17 @@ LL - let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() } + 1;
481481
LL + let _ = 1 + 1;
482482
|
483483

484-
error: aborting due to 42 previous errors
484+
error: used `unwrap_err_unchecked()` on `Err` value
485+
--> $DIR/unnecessary_literal_unwrap.rs:88:22
486+
|
487+
LL | let _ = unsafe { Err::<(), i32>(123).unwrap_err_unchecked() };
488+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
489+
|
490+
help: remove the `Err` and `unwrap_err_unchecked()`
491+
|
492+
LL - let _ = unsafe { Err::<(), i32>(123).unwrap_err_unchecked() };
493+
LL + let _ = 123;
494+
|
495+
496+
error: aborting due to 43 previous errors
485497

0 commit comments

Comments
 (0)