Use 'span_lint_and_sugg'
This commit is contained in:
parent
3a65e4e75a
commit
d51136d594
@ -2176,7 +2176,17 @@ fn lint_flat_map_identity<'a, 'tcx>(
|
|||||||
let arg_node = &flat_map_args[1].node;
|
let arg_node = &flat_map_args[1].node;
|
||||||
|
|
||||||
let apply_lint = |message: &str| {
|
let apply_lint = |message: &str| {
|
||||||
span_lint(cx, FLAT_MAP_IDENTITY, expr.span, message);
|
if let hir::ExprKind::MethodCall(_, span, _) = &expr.node {
|
||||||
|
span_lint_and_sugg(
|
||||||
|
cx,
|
||||||
|
FLAT_MAP_IDENTITY,
|
||||||
|
*span,
|
||||||
|
message,
|
||||||
|
"try",
|
||||||
|
"flatten()".to_string(),
|
||||||
|
Applicability::MachineApplicable,
|
||||||
|
);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if_chain! {
|
if_chain! {
|
||||||
@ -2190,8 +2200,7 @@ fn lint_flat_map_identity<'a, 'tcx>(
|
|||||||
if path.segments[0].ident.as_str() == binding_ident.as_str();
|
if path.segments[0].ident.as_str() == binding_ident.as_str();
|
||||||
|
|
||||||
then {
|
then {
|
||||||
apply_lint("called `flat_map(|x| x)` on an `Iterator`. \
|
apply_lint("called `flat_map(|x| x)` on an `Iterator`");
|
||||||
This can be simplified by calling `flatten().`");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2201,8 +2210,7 @@ fn lint_flat_map_identity<'a, 'tcx>(
|
|||||||
if match_qpath(qpath, &paths::STD_CONVERT_IDENTITY);
|
if match_qpath(qpath, &paths::STD_CONVERT_IDENTITY);
|
||||||
|
|
||||||
then {
|
then {
|
||||||
apply_lint("called `flat_map(std::convert::identity)` on an `Iterator`. \
|
apply_lint("called `flat_map(std::convert::identity)` on an `Iterator`");
|
||||||
This can be simplified by calling `flatten().`");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
// run-rustfix
|
||||||
|
|
||||||
#![warn(clippy::flat_map_identity)]
|
#![warn(clippy::flat_map_identity)]
|
||||||
|
|
||||||
use std::convert;
|
use std::convert;
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
error: called `flat_map(|x| x)` on an `Iterator`. This can be simplified by calling `flatten().`
|
error: called `flat_map(|x| x)` on an `Iterator`
|
||||||
--> $DIR/unnecessary_flat_map.rs:7:5
|
--> $DIR/unnecessary_flat_map.rs:9:14
|
||||||
|
|
|
|
||||||
LL | iterator.flat_map(|x| x);
|
LL | iterator.flat_map(|x| x);
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^ help: try: `flatten()`
|
||||||
|
|
|
|
||||||
= note: `-D clippy::flat-map-identity` implied by `-D warnings`
|
= note: `-D clippy::flat-map-identity` implied by `-D warnings`
|
||||||
|
|
||||||
error: called `flat_map(std::convert::identity)` on an `Iterator`. This can be simplified by calling `flatten().`
|
error: called `flat_map(std::convert::identity)` on an `Iterator`
|
||||||
--> $DIR/unnecessary_flat_map.rs:10:23
|
--> $DIR/unnecessary_flat_map.rs:12:14
|
||||||
|
|
|
|
||||||
LL | iterator.flat_map(convert::identity);
|
LL | iterator.flat_map(convert::identity);
|
||||||
| ^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `flatten()`
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user