Refine lint message.
This commit is contained in:
parent
4f14826e09
commit
d7056f8ffb
@ -3222,17 +3222,17 @@ fn lint_option_as_ref_deref<'a, 'tcx>(
|
||||
|
||||
if is_deref {
|
||||
let current_method = if is_mut {
|
||||
".as_mut().map(DerefMut::deref_mut)"
|
||||
format!(".as_mut().map({})", snippet(cx, map_args[1].span, ".."))
|
||||
} else {
|
||||
".as_ref().map(Deref::deref)"
|
||||
format!(".as_ref().map({})", snippet(cx, map_args[1].span, ".."))
|
||||
};
|
||||
let method_hint = if is_mut { "as_deref_mut" } else { "as_deref" };
|
||||
let hint = format!("{}.{}()", snippet(cx, as_ref_args[0].span, ".."), method_hint);
|
||||
let suggestion = format!("try using {} instead", method_hint);
|
||||
|
||||
let msg = format!(
|
||||
"called `{0}` (or with one of deref aliases) on an Option value. \
|
||||
This can be done more directly by calling `{1}` instead",
|
||||
"called `{0}` on an Option value. This can be done more directly \
|
||||
by calling `{1}` instead",
|
||||
current_method, hint
|
||||
);
|
||||
span_lint_and_sugg(
|
||||
|
@ -1,4 +1,4 @@
|
||||
error: called `.as_ref().map(Deref::deref)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.clone().as_deref()` instead
|
||||
error: called `.as_ref().map(Deref::deref)` on an Option value. This can be done more directly by calling `opt.clone().as_deref()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:13:13
|
||||
|
|
||||
LL | let _ = opt.clone().as_ref().map(Deref::deref).map(str::len);
|
||||
@ -6,7 +6,7 @@ LL | let _ = opt.clone().as_ref().map(Deref::deref).map(str::len);
|
||||
|
|
||||
= note: `-D clippy::option-as-ref-deref` implied by `-D warnings`
|
||||
|
||||
error: called `.as_ref().map(Deref::deref)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.clone().as_deref()` instead
|
||||
error: called `.as_ref().map(Deref::deref)` on an Option value. This can be done more directly by calling `opt.clone().as_deref()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:16:13
|
||||
|
|
||||
LL | let _ = opt.clone()
|
||||
@ -16,85 +16,85 @@ LL | | Deref::deref
|
||||
LL | | )
|
||||
| |_________^ help: try using as_deref instead: `opt.clone().as_deref()`
|
||||
|
||||
error: called `.as_mut().map(DerefMut::deref_mut)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.as_deref_mut()` instead
|
||||
error: called `.as_mut().map(DerefMut::deref_mut)` on an Option value. This can be done more directly by calling `opt.as_deref_mut()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:22:13
|
||||
|
|
||||
LL | let _ = opt.as_mut().map(DerefMut::deref_mut);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref_mut instead: `opt.as_deref_mut()`
|
||||
|
||||
error: called `.as_ref().map(Deref::deref)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.as_deref()` instead
|
||||
error: called `.as_ref().map(String::as_str)` on an Option value. This can be done more directly by calling `opt.as_deref()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:24:13
|
||||
|
|
||||
LL | let _ = opt.as_ref().map(String::as_str);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref instead: `opt.as_deref()`
|
||||
|
||||
error: called `.as_ref().map(Deref::deref)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.as_deref()` instead
|
||||
error: called `.as_ref().map(|x| x.as_str())` on an Option value. This can be done more directly by calling `opt.as_deref()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:25:13
|
||||
|
|
||||
LL | let _ = opt.as_ref().map(|x| x.as_str());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref instead: `opt.as_deref()`
|
||||
|
||||
error: called `.as_mut().map(DerefMut::deref_mut)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.as_deref_mut()` instead
|
||||
error: called `.as_mut().map(String::as_mut_str)` on an Option value. This can be done more directly by calling `opt.as_deref_mut()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:26:13
|
||||
|
|
||||
LL | let _ = opt.as_mut().map(String::as_mut_str);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref_mut instead: `opt.as_deref_mut()`
|
||||
|
||||
error: called `.as_mut().map(DerefMut::deref_mut)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.as_deref_mut()` instead
|
||||
error: called `.as_mut().map(|x| x.as_mut_str())` on an Option value. This can be done more directly by calling `opt.as_deref_mut()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:27:13
|
||||
|
|
||||
LL | let _ = opt.as_mut().map(|x| x.as_mut_str());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref_mut instead: `opt.as_deref_mut()`
|
||||
|
||||
error: called `.as_ref().map(Deref::deref)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `Some(CString::new(vec![]).unwrap()).as_deref()` instead
|
||||
error: called `.as_ref().map(CString::as_c_str)` on an Option value. This can be done more directly by calling `Some(CString::new(vec![]).unwrap()).as_deref()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:28:13
|
||||
|
|
||||
LL | let _ = Some(CString::new(vec![]).unwrap()).as_ref().map(CString::as_c_str);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref instead: `Some(CString::new(vec![]).unwrap()).as_deref()`
|
||||
|
||||
error: called `.as_ref().map(Deref::deref)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `Some(OsString::new()).as_deref()` instead
|
||||
error: called `.as_ref().map(OsString::as_os_str)` on an Option value. This can be done more directly by calling `Some(OsString::new()).as_deref()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:29:13
|
||||
|
|
||||
LL | let _ = Some(OsString::new()).as_ref().map(OsString::as_os_str);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref instead: `Some(OsString::new()).as_deref()`
|
||||
|
||||
error: called `.as_ref().map(Deref::deref)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `Some(PathBuf::new()).as_deref()` instead
|
||||
error: called `.as_ref().map(PathBuf::as_path)` on an Option value. This can be done more directly by calling `Some(PathBuf::new()).as_deref()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:30:13
|
||||
|
|
||||
LL | let _ = Some(PathBuf::new()).as_ref().map(PathBuf::as_path);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref instead: `Some(PathBuf::new()).as_deref()`
|
||||
|
||||
error: called `.as_ref().map(Deref::deref)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `Some(Vec::<()>::new()).as_deref()` instead
|
||||
error: called `.as_ref().map(Vec::as_slice)` on an Option value. This can be done more directly by calling `Some(Vec::<()>::new()).as_deref()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:31:13
|
||||
|
|
||||
LL | let _ = Some(Vec::<()>::new()).as_ref().map(Vec::as_slice);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref instead: `Some(Vec::<()>::new()).as_deref()`
|
||||
|
||||
error: called `.as_mut().map(DerefMut::deref_mut)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `Some(Vec::<()>::new()).as_deref_mut()` instead
|
||||
error: called `.as_mut().map(Vec::as_mut_slice)` on an Option value. This can be done more directly by calling `Some(Vec::<()>::new()).as_deref_mut()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:32:13
|
||||
|
|
||||
LL | let _ = Some(Vec::<()>::new()).as_mut().map(Vec::as_mut_slice);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref_mut instead: `Some(Vec::<()>::new()).as_deref_mut()`
|
||||
|
||||
error: called `.as_ref().map(Deref::deref)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.as_deref()` instead
|
||||
error: called `.as_ref().map(|x| x.deref())` on an Option value. This can be done more directly by calling `opt.as_deref()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:34:13
|
||||
|
|
||||
LL | let _ = opt.as_ref().map(|x| x.deref());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref instead: `opt.as_deref()`
|
||||
|
||||
error: called `.as_mut().map(DerefMut::deref_mut)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.clone().as_deref_mut()` instead
|
||||
error: called `.as_mut().map(|x| x.deref_mut())` on an Option value. This can be done more directly by calling `opt.clone().as_deref_mut()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:35:13
|
||||
|
|
||||
LL | let _ = opt.clone().as_mut().map(|x| x.deref_mut()).map(|x| x.len());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref_mut instead: `opt.clone().as_deref_mut()`
|
||||
|
||||
error: called `.as_ref().map(Deref::deref)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.as_deref()` instead
|
||||
error: called `.as_ref().map(|x| &**x)` on an Option value. This can be done more directly by calling `opt.as_deref()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:42:13
|
||||
|
|
||||
LL | let _ = opt.as_ref().map(|x| &**x);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using as_deref instead: `opt.as_deref()`
|
||||
|
||||
error: called `.as_mut().map(DerefMut::deref_mut)` (or with one of deref aliases) on an Option value. This can be done more directly by calling `opt.as_deref_mut()` instead
|
||||
error: called `.as_mut().map(|x| &mut **x)` on an Option value. This can be done more directly by calling `opt.as_deref_mut()` instead
|
||||
--> $DIR/option_as_ref_deref.rs:43:13
|
||||
|
|
||||
LL | let _ = opt.as_mut().map(|x| &mut **x);
|
||||
|
Loading…
Reference in New Issue
Block a user