mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 07:00:55 +00:00
Merge pull request #2999 from flip1995/single_char_pattern
Fix single_char_pattern lint for escaped chars
This commit is contained in:
commit
f6c4e303c9
3 changed files with 9 additions and 5 deletions
|
@ -1899,11 +1899,8 @@ fn lint_chars_last_cmp_with_unwrap<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, info: &
|
|||
fn lint_single_char_pattern<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, _expr: &'tcx hir::Expr, arg: &'tcx hir::Expr) {
|
||||
if let Some((Constant::Str(r), _)) = constant(cx, cx.tables, arg) {
|
||||
if r.len() == 1 {
|
||||
let c = r.chars().next().unwrap();
|
||||
let snip = snippet(cx, arg.span, "..");
|
||||
let hint = snip.replace(
|
||||
&format!("\"{}\"", c.escape_default()),
|
||||
&format!("'{}'", c.escape_default()));
|
||||
let hint = format!("'{}'", &snip[1..snip.len() - 1]);
|
||||
span_lint_and_sugg(
|
||||
cx,
|
||||
SINGLE_CHAR_PATTERN,
|
||||
|
|
|
@ -42,4 +42,5 @@ fn main() {
|
|||
h.contains("X"); // should not warn
|
||||
|
||||
x.replace(";", ",").split(","); // issue #2978
|
||||
x.starts_with("\x03"); // issue #2996
|
||||
}
|
||||
|
|
|
@ -114,5 +114,11 @@ error: single-character string constant used as pattern
|
|||
44 | x.replace(";", ",").split(","); // issue #2978
|
||||
| ^^^ help: try using a char instead: `','`
|
||||
|
||||
error: aborting due to 19 previous errors
|
||||
error: single-character string constant used as pattern
|
||||
--> $DIR/single_char_pattern.rs:45:19
|
||||
|
|
||||
45 | x.starts_with("/x03"); // issue #2996
|
||||
| ^^^^^^ help: try using a char instead: `'/x03'`
|
||||
|
||||
error: aborting due to 20 previous errors
|
||||
|
||||
|
|
Loading…
Reference in a new issue