if let hir::ExprKind::Lit(lit) = &arg.kind;
if let ast::LitKind::Str(r, style) = lit.node;
let string = r.as_str();
- if string.len() == 1;
+ if string.chars().count() == 1;
then {
let snip = snippet_with_applicability(cx, arg.span, &string, applicability);
let ch = if let ast::StrStyle::Raw(nhash) = style {
//
// We may not want to suggest changing these anyway
// See: https://github.com/rust-lang/rust-clippy/issues/650#issuecomment-184328984
- x.split("ß");
- x.split("ℝ");
- x.split("💣");
+ x.split('ß');
+ x.split('ℝ');
+ x.split('💣');
// Can't use this lint for unicode code points which don't fit in a char
x.split("❤️");
x.contains('x');
|
= note: `-D clippy::single-char-pattern` implied by `-D warnings`
+error: single-character string constant used as pattern
+ --> $DIR/single_char_pattern.rs:21:13
+ |
+LL | x.split("ß");
+ | ^^^ help: try using a `char` instead: `'ß'`
+
+error: single-character string constant used as pattern
+ --> $DIR/single_char_pattern.rs:22:13
+ |
+LL | x.split("ℝ");
+ | ^^^ help: try using a `char` instead: `'ℝ'`
+
+error: single-character string constant used as pattern
+ --> $DIR/single_char_pattern.rs:23:13
+ |
+LL | x.split("💣");
+ | ^^^^ help: try using a `char` instead: `'💣'`
+
error: single-character string constant used as pattern
--> $DIR/single_char_pattern.rs:26:16
|
LL | x.split(r###"#"###);
| ^^^^^^^^^^ help: try using a `char` instead: `'#'`
-error: aborting due to 27 previous errors
+error: aborting due to 30 previous errors
string.push('\u{0052}');
string.push('a');
- get_string!().push_str("ö");
+ get_string!().push('ö');
}
LL | string.push_str(r##"a"##);
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `string.push('a')`
-error: aborting due to 5 previous errors
+error: calling `push_str()` using a single-character string literal
+ --> $DIR/single_char_push_str.rs:22:5
+ |
+LL | get_string!().push_str("ö");
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `get_string!().push('ö')`
+
+error: aborting due to 6 previous errors