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 `insert_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
[1], &mut applicability
, false) {
14 let base_string_snippet
=
15 snippet_with_applicability(cx
, receiver
.span
.source_callsite(), "_", &mut applicability
);
16 let pos_arg
= snippet_with_applicability(cx
, args
[0].span
, "..", &mut applicability
);
17 let sugg
= format
!("{base_string_snippet}.insert({pos_arg}, {extension_string})");
22 "calling `insert_str()` using a single-character string literal",
23 "consider using `insert` with a character literal",