1 use super::utils
::get_hint_if_single_char_arg
;
2 use clippy_utils
::diagnostics
::span_lint_and_sugg
;
3 use clippy_utils
::source
::snippet_with_applicability
;
4 use rustc_errors
::Applicability
;
6 use rustc_lint
::LateContext
;
8 use super::SINGLE_CHAR_ADD_STR
;
10 /// lint for length-1 `str`s as argument for `push_str`
11 pub(super) fn check(cx
: &LateContext
<'_
>, expr
: &hir
::Expr
<'_
>, receiver
: &hir
::Expr
<'_
>, args
: &[hir
::Expr
<'_
>]) {
12 let mut applicability
= Applicability
::MachineApplicable
;
13 if let Some(extension_string
) = get_hint_if_single_char_arg(cx
, &args
[0], &mut applicability
) {
14 let base_string_snippet
=
15 snippet_with_applicability(cx
, receiver
.span
.source_callsite(), "..", &mut applicability
);
16 let sugg
= format
!("{}.push({})", base_string_snippet
, extension_string
);
21 "calling `push_str()` using a single-character string literal",
22 "consider using `push` with a character literal",