about summary refs log tree commit diff
path: root/src/libsyntax/print
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2019-01-20 14:51:54 +0900
committerYuki Okushi <huyuumi.dev@gmail.com>2019-01-20 14:51:54 +0900
commita4ff1dcc534e9ae132e5b201a8f6e7dd06fbd9ee (patch)
treeb0a215286a480d863d5d9ac6b295f52b0386bc58 /src/libsyntax/print
parente9af312932baee90d260b41711f7ea95ad51bc07 (diff)
downloadrust-a4ff1dcc534e9ae132e5b201a8f6e7dd06fbd9ee.tar.gz
rust-a4ff1dcc534e9ae132e5b201a8f6e7dd06fbd9ee.zip
Mark incorrect recovered `char` literals as `TyErr` to avoid type errors
Diffstat (limited to 'src/libsyntax/print')
-rw-r--r--src/libsyntax/print/pprust.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index 123f9b49692..383baffa266 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -604,6 +604,14 @@ pub trait PrintState<'a> {
         }
         match lit.node {
             ast::LitKind::Str(st, style) => self.print_string(&st.as_str(), style),
+            ast::LitKind::Err(st) => {
+                let st = st.as_str().escape_debug();
+                let mut res = String::with_capacity(st.len() + 2);
+                res.push('\'');
+                res.push_str(&st);
+                res.push('\'');
+                self.writer().word(res)
+            }
             ast::LitKind::Byte(byte) => {
                 let mut res = String::from("b'");
                 res.extend(ascii::escape_default(byte).map(|c| c as char));