about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/lexer
diff options
context:
space:
mode:
author5225225 <5225225@mailbox.org>2021-11-13 11:14:17 +0000
committer5225225 <5225225@mailbox.org>2021-11-16 08:06:30 +0000
commitde05d3ec31f22b1f3afaf8b5ceddf224492c4aaa (patch)
tree00820f35879413e641462e8340e7617d5fd1fadd /compiler/rustc_parse/src/lexer
parent02063124f96aac10f8c5c70653242b0704d397e0 (diff)
downloadrust-de05d3ec31f22b1f3afaf8b5ceddf224492c4aaa.tar.gz
rust-de05d3ec31f22b1f3afaf8b5ceddf224492c4aaa.zip
Print full char literal on error if any are non-printing
Diffstat (limited to 'compiler/rustc_parse/src/lexer')
-rw-r--r--compiler/rustc_parse/src/lexer/unescape_error_reporting.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/compiler/rustc_parse/src/lexer/unescape_error_reporting.rs b/compiler/rustc_parse/src/lexer/unescape_error_reporting.rs
index 569f186a727..0f6594a2a7f 100644
--- a/compiler/rustc_parse/src/lexer/unescape_error_reporting.rs
+++ b/compiler/rustc_parse/src/lexer/unescape_error_reporting.rs
@@ -82,6 +82,16 @@ pub(crate) fn emit_unescape_error(
                         Applicability::MachineApplicable,
                     );
                 }
+            } else {
+                if lit.chars().filter(|x| x.is_whitespace() || x.is_control()).count() >= 1 {
+                    handler.span_note(
+                        span,
+                        &format!(
+                            "there are non-printing characters, the full sequence is `{}`",
+                            lit.escape_default(),
+                        ),
+                    );
+                }
             }
 
             if !has_help {