mirror of
https://github.com/rust-lang/rust-clippy
synced 2025-02-26 04:17:21 +00:00
Cleaned up message and suggestion for lint_search_is_some
This commit is contained in:
parent
ee1b959054
commit
fd303132a2
3 changed files with 44 additions and 41 deletions
|
@ -3053,10 +3053,10 @@ fn lint_search_is_some<'tcx>(
|
||||||
// lint if caller of search is an Iterator
|
// lint if caller of search is an Iterator
|
||||||
if match_trait_method(cx, &is_some_args[0], &paths::ITERATOR) {
|
if match_trait_method(cx, &is_some_args[0], &paths::ITERATOR) {
|
||||||
let msg = format!(
|
let msg = format!(
|
||||||
"called `is_some()` after searching an `Iterator` with {}. This is more succinctly \
|
"called `is_some()` after searching an `Iterator` with {}",
|
||||||
expressed by calling `any()`.",
|
|
||||||
search_method
|
search_method
|
||||||
);
|
);
|
||||||
|
let hint = "this is more succinctly expressed by calling `any()`";
|
||||||
let search_snippet = snippet(cx, search_args[1].span, "..");
|
let search_snippet = snippet(cx, search_args[1].span, "..");
|
||||||
if search_snippet.lines().count() <= 1 {
|
if search_snippet.lines().count() <= 1 {
|
||||||
// suggest `any(|x| ..)` instead of `any(|&x| ..)` for `find(|&x| ..).is_some()`
|
// suggest `any(|x| ..)` instead of `any(|&x| ..)` for `find(|&x| ..).is_some()`
|
||||||
|
@ -3084,7 +3084,7 @@ fn lint_search_is_some<'tcx>(
|
||||||
SEARCH_IS_SOME,
|
SEARCH_IS_SOME,
|
||||||
method_span.with_hi(expr.span.hi()),
|
method_span.with_hi(expr.span.hi()),
|
||||||
&msg,
|
&msg,
|
||||||
"try this",
|
"use `any()` instead",
|
||||||
format!(
|
format!(
|
||||||
"any({})",
|
"any({})",
|
||||||
any_search_snippet.as_ref().map_or(&*search_snippet, String::as_str)
|
any_search_snippet.as_ref().map_or(&*search_snippet, String::as_str)
|
||||||
|
@ -3092,7 +3092,7 @@ fn lint_search_is_some<'tcx>(
|
||||||
Applicability::MachineApplicable,
|
Applicability::MachineApplicable,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
span_lint(cx, SEARCH_IS_SOME, expr.span, &msg);
|
span_lint_and_help(cx, SEARCH_IS_SOME, expr.span, &msg, None, hint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// lint if `find()` is called by `String` or `&str`
|
// lint if `find()` is called by `String` or `&str`
|
||||||
|
@ -3109,9 +3109,7 @@ fn lint_search_is_some<'tcx>(
|
||||||
if is_string_or_str_slice(&search_args[0]);
|
if is_string_or_str_slice(&search_args[0]);
|
||||||
if is_string_or_str_slice(&search_args[1]);
|
if is_string_or_str_slice(&search_args[1]);
|
||||||
then {
|
then {
|
||||||
let msg = "called `is_some()` after calling `find()` \
|
let msg = "called `is_some()` after calling `find()` on a string";
|
||||||
on a string. This is more succinctly expressed by calling \
|
|
||||||
`contains()`.";
|
|
||||||
let mut applicability = Applicability::MachineApplicable;
|
let mut applicability = Applicability::MachineApplicable;
|
||||||
let find_arg = snippet_with_applicability(cx, search_args[1].span, "..", &mut applicability);
|
let find_arg = snippet_with_applicability(cx, search_args[1].span, "..", &mut applicability);
|
||||||
span_lint_and_sugg(
|
span_lint_and_sugg(
|
||||||
|
@ -3119,7 +3117,7 @@ fn lint_search_is_some<'tcx>(
|
||||||
SEARCH_IS_SOME,
|
SEARCH_IS_SOME,
|
||||||
method_span.with_hi(expr.span.hi()),
|
method_span.with_hi(expr.span.hi()),
|
||||||
msg,
|
msg,
|
||||||
"try this",
|
"use `contains()` instead",
|
||||||
format!("contains({})", find_arg),
|
format!("contains({})", find_arg),
|
||||||
applicability,
|
applicability,
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
error: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`.
|
error: called `is_some()` after searching an `Iterator` with find
|
||||||
--> $DIR/search_is_some.rs:13:13
|
--> $DIR/search_is_some.rs:13:13
|
||||||
|
|
|
|
||||||
LL | let _ = v.iter().find(|&x| {
|
LL | let _ = v.iter().find(|&x| {
|
||||||
|
@ -9,8 +9,9 @@ LL | | ).is_some();
|
||||||
| |______________________________^
|
| |______________________________^
|
||||||
|
|
|
|
||||||
= note: `-D clippy::search-is-some` implied by `-D warnings`
|
= note: `-D clippy::search-is-some` implied by `-D warnings`
|
||||||
|
= help: this is more succinctly expressed by calling `any()`
|
||||||
|
|
||||||
error: called `is_some()` after searching an `Iterator` with position. This is more succinctly expressed by calling `any()`.
|
error: called `is_some()` after searching an `Iterator` with position
|
||||||
--> $DIR/search_is_some.rs:19:13
|
--> $DIR/search_is_some.rs:19:13
|
||||||
|
|
|
|
||||||
LL | let _ = v.iter().position(|&x| {
|
LL | let _ = v.iter().position(|&x| {
|
||||||
|
@ -19,8 +20,10 @@ LL | | x < 0
|
||||||
LL | | }
|
LL | | }
|
||||||
LL | | ).is_some();
|
LL | | ).is_some();
|
||||||
| |______________________________^
|
| |______________________________^
|
||||||
|
|
|
||||||
|
= help: this is more succinctly expressed by calling `any()`
|
||||||
|
|
||||||
error: called `is_some()` after searching an `Iterator` with rposition. This is more succinctly expressed by calling `any()`.
|
error: called `is_some()` after searching an `Iterator` with rposition
|
||||||
--> $DIR/search_is_some.rs:25:13
|
--> $DIR/search_is_some.rs:25:13
|
||||||
|
|
|
|
||||||
LL | let _ = v.iter().rposition(|&x| {
|
LL | let _ = v.iter().rposition(|&x| {
|
||||||
|
@ -29,6 +32,8 @@ LL | | x < 0
|
||||||
LL | | }
|
LL | | }
|
||||||
LL | | ).is_some();
|
LL | | ).is_some();
|
||||||
| |______________________________^
|
| |______________________________^
|
||||||
|
|
|
||||||
|
= help: this is more succinctly expressed by calling `any()`
|
||||||
|
|
||||||
error: use of a blacklisted/placeholder name `foo`
|
error: use of a blacklisted/placeholder name `foo`
|
||||||
--> $DIR/search_is_some.rs:31:9
|
--> $DIR/search_is_some.rs:31:9
|
||||||
|
|
|
@ -1,94 +1,94 @@
|
||||||
error: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`.
|
error: called `is_some()` after searching an `Iterator` with find
|
||||||
--> $DIR/search_is_some_fixable.rs:10:22
|
--> $DIR/search_is_some_fixable.rs:10:22
|
||||||
|
|
|
|
||||||
LL | let _ = v.iter().find(|&x| *x < 0).is_some();
|
LL | let _ = v.iter().find(|&x| *x < 0).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `any(|x| *x < 0)`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `any()` instead: `any(|x| *x < 0)`
|
||||||
|
|
|
|
||||||
= note: `-D clippy::search-is-some` implied by `-D warnings`
|
= note: `-D clippy::search-is-some` implied by `-D warnings`
|
||||||
|
|
||||||
error: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`.
|
error: called `is_some()` after searching an `Iterator` with find
|
||||||
--> $DIR/search_is_some_fixable.rs:11:20
|
--> $DIR/search_is_some_fixable.rs:11:20
|
||||||
|
|
|
|
||||||
LL | let _ = (0..1).find(|x| **y == *x).is_some(); // one dereference less
|
LL | let _ = (0..1).find(|x| **y == *x).is_some(); // one dereference less
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `any(|x| **y == x)`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `any()` instead: `any(|x| **y == x)`
|
||||||
|
|
||||||
error: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`.
|
error: called `is_some()` after searching an `Iterator` with find
|
||||||
--> $DIR/search_is_some_fixable.rs:12:20
|
--> $DIR/search_is_some_fixable.rs:12:20
|
||||||
|
|
|
|
||||||
LL | let _ = (0..1).find(|x| *x == 0).is_some();
|
LL | let _ = (0..1).find(|x| *x == 0).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `any(|x| x == 0)`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `any()` instead: `any(|x| x == 0)`
|
||||||
|
|
||||||
error: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`.
|
error: called `is_some()` after searching an `Iterator` with find
|
||||||
--> $DIR/search_is_some_fixable.rs:13:22
|
--> $DIR/search_is_some_fixable.rs:13:22
|
||||||
|
|
|
|
||||||
LL | let _ = v.iter().find(|x| **x == 0).is_some();
|
LL | let _ = v.iter().find(|x| **x == 0).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `any(|x| *x == 0)`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `any()` instead: `any(|x| *x == 0)`
|
||||||
|
|
||||||
error: called `is_some()` after searching an `Iterator` with position. This is more succinctly expressed by calling `any()`.
|
error: called `is_some()` after searching an `Iterator` with position
|
||||||
--> $DIR/search_is_some_fixable.rs:16:22
|
--> $DIR/search_is_some_fixable.rs:16:22
|
||||||
|
|
|
|
||||||
LL | let _ = v.iter().position(|&x| x < 0).is_some();
|
LL | let _ = v.iter().position(|&x| x < 0).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `any(|&x| x < 0)`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `any()` instead: `any(|&x| x < 0)`
|
||||||
|
|
||||||
error: called `is_some()` after searching an `Iterator` with rposition. This is more succinctly expressed by calling `any()`.
|
error: called `is_some()` after searching an `Iterator` with rposition
|
||||||
--> $DIR/search_is_some_fixable.rs:19:22
|
--> $DIR/search_is_some_fixable.rs:19:22
|
||||||
|
|
|
|
||||||
LL | let _ = v.iter().rposition(|&x| x < 0).is_some();
|
LL | let _ = v.iter().rposition(|&x| x < 0).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `any(|&x| x < 0)`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `any()` instead: `any(|&x| x < 0)`
|
||||||
|
|
||||||
error: called `is_some()` after calling `find()` on a string. This is more succinctly expressed by calling `contains()`.
|
error: called `is_some()` after calling `find()` on a string
|
||||||
--> $DIR/search_is_some_fixable.rs:24:27
|
--> $DIR/search_is_some_fixable.rs:24:27
|
||||||
|
|
|
|
||||||
LL | let _ = "hello world".find("world").is_some();
|
LL | let _ = "hello world".find("world").is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `contains("world")`
|
| ^^^^^^^^^^^^^^^^^^^^^^^ help: use `contains()` instead: `contains("world")`
|
||||||
|
|
||||||
error: called `is_some()` after calling `find()` on a string. This is more succinctly expressed by calling `contains()`.
|
error: called `is_some()` after calling `find()` on a string
|
||||||
--> $DIR/search_is_some_fixable.rs:25:27
|
--> $DIR/search_is_some_fixable.rs:25:27
|
||||||
|
|
|
|
||||||
LL | let _ = "hello world".find(&s2).is_some();
|
LL | let _ = "hello world".find(&s2).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^ help: try this: `contains(&s2)`
|
| ^^^^^^^^^^^^^^^^^^^ help: use `contains()` instead: `contains(&s2)`
|
||||||
|
|
||||||
error: called `is_some()` after calling `find()` on a string. This is more succinctly expressed by calling `contains()`.
|
error: called `is_some()` after calling `find()` on a string
|
||||||
--> $DIR/search_is_some_fixable.rs:26:27
|
--> $DIR/search_is_some_fixable.rs:26:27
|
||||||
|
|
|
|
||||||
LL | let _ = "hello world".find(&s2[2..]).is_some();
|
LL | let _ = "hello world".find(&s2[2..]).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `contains(&s2[2..])`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `contains()` instead: `contains(&s2[2..])`
|
||||||
|
|
||||||
error: called `is_some()` after calling `find()` on a string. This is more succinctly expressed by calling `contains()`.
|
error: called `is_some()` after calling `find()` on a string
|
||||||
--> $DIR/search_is_some_fixable.rs:28:16
|
--> $DIR/search_is_some_fixable.rs:28:16
|
||||||
|
|
|
|
||||||
LL | let _ = s1.find("world").is_some();
|
LL | let _ = s1.find("world").is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `contains("world")`
|
| ^^^^^^^^^^^^^^^^^^^^^^^ help: use `contains()` instead: `contains("world")`
|
||||||
|
|
||||||
error: called `is_some()` after calling `find()` on a string. This is more succinctly expressed by calling `contains()`.
|
error: called `is_some()` after calling `find()` on a string
|
||||||
--> $DIR/search_is_some_fixable.rs:29:16
|
--> $DIR/search_is_some_fixable.rs:29:16
|
||||||
|
|
|
|
||||||
LL | let _ = s1.find(&s2).is_some();
|
LL | let _ = s1.find(&s2).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^ help: try this: `contains(&s2)`
|
| ^^^^^^^^^^^^^^^^^^^ help: use `contains()` instead: `contains(&s2)`
|
||||||
|
|
||||||
error: called `is_some()` after calling `find()` on a string. This is more succinctly expressed by calling `contains()`.
|
error: called `is_some()` after calling `find()` on a string
|
||||||
--> $DIR/search_is_some_fixable.rs:30:16
|
--> $DIR/search_is_some_fixable.rs:30:16
|
||||||
|
|
|
|
||||||
LL | let _ = s1.find(&s2[2..]).is_some();
|
LL | let _ = s1.find(&s2[2..]).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `contains(&s2[2..])`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `contains()` instead: `contains(&s2[2..])`
|
||||||
|
|
||||||
error: called `is_some()` after calling `find()` on a string. This is more succinctly expressed by calling `contains()`.
|
error: called `is_some()` after calling `find()` on a string
|
||||||
--> $DIR/search_is_some_fixable.rs:32:21
|
--> $DIR/search_is_some_fixable.rs:32:21
|
||||||
|
|
|
|
||||||
LL | let _ = s1[2..].find("world").is_some();
|
LL | let _ = s1[2..].find("world").is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `contains("world")`
|
| ^^^^^^^^^^^^^^^^^^^^^^^ help: use `contains()` instead: `contains("world")`
|
||||||
|
|
||||||
error: called `is_some()` after calling `find()` on a string. This is more succinctly expressed by calling `contains()`.
|
error: called `is_some()` after calling `find()` on a string
|
||||||
--> $DIR/search_is_some_fixable.rs:33:21
|
--> $DIR/search_is_some_fixable.rs:33:21
|
||||||
|
|
|
|
||||||
LL | let _ = s1[2..].find(&s2).is_some();
|
LL | let _ = s1[2..].find(&s2).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^ help: try this: `contains(&s2)`
|
| ^^^^^^^^^^^^^^^^^^^ help: use `contains()` instead: `contains(&s2)`
|
||||||
|
|
||||||
error: called `is_some()` after calling `find()` on a string. This is more succinctly expressed by calling `contains()`.
|
error: called `is_some()` after calling `find()` on a string
|
||||||
--> $DIR/search_is_some_fixable.rs:34:21
|
--> $DIR/search_is_some_fixable.rs:34:21
|
||||||
|
|
|
|
||||||
LL | let _ = s1[2..].find(&s2[2..]).is_some();
|
LL | let _ = s1[2..].find(&s2[2..]).is_some();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `contains(&s2[2..])`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `contains()` instead: `contains(&s2[2..])`
|
||||||
|
|
||||||
error: aborting due to 15 previous errors
|
error: aborting due to 15 previous errors
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue