Address items_after_statement

This commit is contained in:
Takayuki Nakata 2020-09-08 23:12:04 +09:00
parent 952c04674e
commit 1d8ae3aa12

View file

@ -1131,6 +1131,23 @@ fn detect_same_item_push<'tcx>(
body: &'tcx Expr<'_>, body: &'tcx Expr<'_>,
_: &'tcx Expr<'_>, _: &'tcx Expr<'_>,
) { ) {
fn emit_lint(cx: &LateContext<'_>, vec: &Expr<'_>, pushed_item: &Expr<'_>) {
let vec_str = snippet_with_macro_callsite(cx, vec.span, "");
let item_str = snippet_with_macro_callsite(cx, pushed_item.span, "");
span_lint_and_help(
cx,
SAME_ITEM_PUSH,
vec.span,
"it looks like the same item is being pushed into this Vec",
None,
&format!(
"try using vec![{};SIZE] or {}.resize(NEW_SIZE, {})",
item_str, vec_str, item_str
),
)
}
if !matches!(pat.kind, PatKind::Wild) { if !matches!(pat.kind, PatKind::Wild) {
return; return;
} }
@ -1192,23 +1209,6 @@ fn detect_same_item_push<'tcx>(
} }
} }
} }
fn emit_lint(cx: &LateContext<'_>, vec: &Expr<'_>, pushed_item: &Expr<'_>) {
let vec_str = snippet_with_macro_callsite(cx, vec.span, "");
let item_str = snippet_with_macro_callsite(cx, pushed_item.span, "");
span_lint_and_help(
cx,
SAME_ITEM_PUSH,
vec.span,
"it looks like the same item is being pushed into this Vec",
None,
&format!(
"try using vec![{};SIZE] or {}.resize(NEW_SIZE, {})",
item_str, vec_str, item_str
),
)
}
} }
/// Checks for looping over a range and then indexing a sequence with it. /// Checks for looping over a range and then indexing a sequence with it.