Rollup merge of #77587 - ehuss:unicode-escape-span, r=ecstatic-morse
Fix span for unicode escape suggestion. If a unicode escape is missing the curly braces, the suggested fix is to add the curly braces, but the span for the fix was incorrect. It was not covering the `\u`, but the suggested text includes the `\u`, causing the resulting fix to be `"\u\u{1234}"`. This changes it so that the span includes the `\u`. An alternate fix would be to remove `\u` from the suggested fix, but I think the error message reads better if the entire escape is included.
This commit is contained in:
commit
cc908f3b70
@ -181,10 +181,9 @@ pub(crate) fn emit_unescape_error(
|
|||||||
|
|
||||||
if suggestion_len > 0 {
|
if suggestion_len > 0 {
|
||||||
suggestion.push('}');
|
suggestion.push('}');
|
||||||
let lo = char_span.lo();
|
let hi = char_span.lo() + BytePos(suggestion_len as u32);
|
||||||
let hi = lo + BytePos(suggestion_len as u32);
|
|
||||||
diag.span_suggestion(
|
diag.span_suggestion(
|
||||||
span.with_lo(lo).with_hi(hi),
|
span.with_hi(hi),
|
||||||
"format of unicode escape sequences uses braces",
|
"format of unicode escape sequences uses braces",
|
||||||
suggestion,
|
suggestion,
|
||||||
Applicability::MaybeIncorrect,
|
Applicability::MaybeIncorrect,
|
||||||
|
@ -2,9 +2,7 @@ error: incorrect unicode escape sequence
|
|||||||
--> $DIR/format-string-error-2.rs:77:20
|
--> $DIR/format-string-error-2.rs:77:20
|
||||||
|
|
|
|
||||||
LL | println!("\x7B}\u8 {", 1);
|
LL | println!("\x7B}\u8 {", 1);
|
||||||
| ^^-
|
| ^^^ help: format of unicode escape sequences uses braces: `\u{8}`
|
||||||
| |
|
|
||||||
| help: format of unicode escape sequences uses braces: `\u{8}`
|
|
||||||
|
|
||||||
error: invalid format string: expected `'}'`, found `'a'`
|
error: invalid format string: expected `'}'`, found `'a'`
|
||||||
--> $DIR/format-string-error-2.rs:5:5
|
--> $DIR/format-string-error-2.rs:5:5
|
||||||
|
@ -80,9 +80,9 @@ error: incorrect unicode escape sequence
|
|||||||
--> $DIR/issue-23620-invalid-escapes.rs:32:14
|
--> $DIR/issue-23620-invalid-escapes.rs:32:14
|
||||||
|
|
|
|
||||||
LL | let _ = "\u8f";
|
LL | let _ = "\u8f";
|
||||||
| ^^--
|
| ^^^-
|
||||||
| |
|
| |
|
||||||
| help: format of unicode escape sequences uses braces: `\u{8f}`
|
| help: format of unicode escape sequences uses braces: `\u{8f}`
|
||||||
|
|
||||||
error: aborting due to 13 previous errors
|
error: aborting due to 13 previous errors
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user