diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2024-03-09 01:07:23 +0000 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2024-03-17 23:35:18 +0000 |
| commit | 4a10b01f9504f8ad2ffb9b357845341f4fba6bf0 (patch) | |
| tree | ec79eb0297f39369f98f0ff52ecc175b1175427b /compiler/rustc_parse/src/lexer | |
| parent | 982918f4935fd4677af06d42e0d0b298bfb1c243 (diff) | |
| download | rust-4a10b01f9504f8ad2ffb9b357845341f4fba6bf0.tar.gz rust-4a10b01f9504f8ad2ffb9b357845341f4fba6bf0.zip | |
Use shorter span for existing `'` -> `"` structured suggestion
Diffstat (limited to 'compiler/rustc_parse/src/lexer')
| -rw-r--r-- | compiler/rustc_parse/src/lexer/unescape_error_reporting.rs | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/compiler/rustc_parse/src/lexer/unescape_error_reporting.rs b/compiler/rustc_parse/src/lexer/unescape_error_reporting.rs index 3ebad6a9fd7..1ac6b6fe115 100644 --- a/compiler/rustc_parse/src/lexer/unescape_error_reporting.rs +++ b/compiler/rustc_parse/src/lexer/unescape_error_reporting.rs @@ -95,11 +95,21 @@ pub(crate) fn emit_unescape_error( } escaped.push(c); } - let sugg = format!("{prefix}\"{escaped}\""); - MoreThanOneCharSugg::Quotes { - span: full_lit_span, - is_byte: mode == Mode::Byte, - sugg, + if escaped.len() != lit.len() { + let sugg = format!("{prefix}\"{escaped}\""); + MoreThanOneCharSugg::QuotesFull { + span: full_lit_span, + is_byte: mode == Mode::Byte, + sugg, + } + } else { + MoreThanOneCharSugg::Quotes { + start: full_lit_span + .with_hi(full_lit_span.lo() + BytePos((prefix.len() + 1) as u32)), + end: full_lit_span.with_lo(full_lit_span.hi() - BytePos(1)), + is_byte: mode == Mode::Byte, + prefix, + } } }); dcx.emit_err(UnescapeError::MoreThanOneChar { |
