mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-03 10:33:34 +00:00
Fix single_char_pattern lint for escaped chars
This commit is contained in:
parent
f43d0e53b2
commit
55672e7e49
@ -1888,11 +1888,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) {
|
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 let Some((Constant::Str(r), _)) = constant(cx, cx.tables, arg) {
|
||||||
if r.len() == 1 {
|
if r.len() == 1 {
|
||||||
let c = r.chars().next().unwrap();
|
|
||||||
let snip = snippet(cx, arg.span, "..");
|
let snip = snippet(cx, arg.span, "..");
|
||||||
let hint = snip.replace(
|
let hint = format!("'{}'", &snip[1..snip.len() - 1]);
|
||||||
&format!("\"{}\"", c.escape_default()),
|
|
||||||
&format!("'{}'", c.escape_default()));
|
|
||||||
span_lint_and_sugg(
|
span_lint_and_sugg(
|
||||||
cx,
|
cx,
|
||||||
SINGLE_CHAR_PATTERN,
|
SINGLE_CHAR_PATTERN,
|
||||||
|
@ -42,4 +42,5 @@ fn main() {
|
|||||||
h.contains("X"); // should not warn
|
h.contains("X"); // should not warn
|
||||||
|
|
||||||
x.replace(";", ",").split(","); // issue #2978
|
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
|
44 | x.replace(";", ",").split(","); // issue #2978
|
||||||
| ^^^ help: try using a char instead: `','`
|
| ^^^ 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 New Issue
Block a user