[unnecessary_literal_unwrap]: also handle unwrap_err_unchecked

This commit is contained in:
y21 2023-07-04 00:49:18 +02:00
parent cd1c8532e9
commit 0b5dac0975
5 changed files with 17 additions and 6 deletions

View File

@ -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]) => {

View File

@ -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()),

View File

@ -85,6 +85,7 @@ fn unwrap_unchecked() {
let _ = 1;
let _ = unsafe { 1 + *(&1 as *const i32) };
let _ = 1 + 1;
let _ = 123;
}
fn main() {

View File

@ -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() {

View File

@ -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