Skip to content

Commit 1849550

Browse files
committed
[unnecessary_literal_unwrap]: also handle unwrap_err_unchecked
1 parent 17d3828 commit 1849550

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
@@ -3966,9 +3966,6 @@ impl Methods {
39663966
unnecessary_literal_unwrap::check(cx, expr, recv, name, args);
39673967
unwrap_used::check(cx, expr, recv, false, self.allow_unwrap_in_tests);
39683968
},
3969-
("unwrap_unchecked", []) => {
3970-
unnecessary_literal_unwrap::check(cx, expr, recv, name, args);
3971-
}
39723969
("unwrap_err", []) => {
39733970
unnecessary_literal_unwrap::check(cx, expr, recv, name, args);
39743971
unwrap_used::check(cx, expr, recv, true, self.allow_unwrap_in_tests);
@@ -3988,7 +3985,7 @@ impl Methods {
39883985
}
39893986
unnecessary_literal_unwrap::check(cx, expr, recv, name, args);
39903987
},
3991-
("unwrap_or_default", []) => {
3988+
("unwrap_or_default" | "unwrap_unchecked" | "unwrap_err_unchecked", []) => {
39923989
unnecessary_literal_unwrap::check(cx, expr, recv, name, args);
39933990
}
39943991
("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
@@ -62,7 +62,7 @@ pub(super) fn check(
6262
(expr.span.with_hi(args[0].span.lo()), "panic!(".to_string()),
6363
(expr.span.with_lo(args[0].span.hi()), ")".to_string()),
6464
]),
65-
("Some" | "Ok", "unwrap_unchecked", _) => {
65+
("Some" | "Ok", "unwrap_unchecked", _) | ("Err", "unwrap_err_unchecked", _) => {
6666
let mut suggs = vec![
6767
(recv.span.with_hi(call_args[0].span.lo()), String::new()),
6868
(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
@@ -75,6 +75,7 @@ fn unwrap_unchecked() {
7575
let _ = 1;
7676
let _ = unsafe { 1 + *(&1 as *const i32) };
7777
let _ = 1 + 1;
78+
let _ = 123;
7879
}
7980

8081
fn main() {

tests/ui/unnecessary_literal_unwrap.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ fn unwrap_unchecked() {
7575
let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() };
7676
let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() + *(&1 as *const i32) };
7777
let _ = unsafe { Ok::<_, ()>(1).unwrap_unchecked() } + 1;
78+
let _ = unsafe { Err::<(), i32>(123).unwrap_err_unchecked() };
7879
}
7980

8081
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:78: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)