about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorIgor Matuszewski <Xanewok@gmail.com>2019-06-10 17:32:15 +0200
committerIgor Matuszewski <Xanewok@gmail.com>2019-06-10 17:32:15 +0200
commit630d5f355fc85fc2c3bab28a278c517d945d328d (patch)
tree0a03551c5117f67c34eabd1023d875c468ab067e /src/libsyntax/parse
parent63dc7da703759dd53536dd18a42ff65f39a2f9b4 (diff)
downloadrust-630d5f355fc85fc2c3bab28a278c517d945d328d.tar.gz
rust-630d5f355fc85fc2c3bab28a278c517d945d328d.zip
Don't suggest using \r in raw strings
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/unescape.rs3
-rw-r--r--src/libsyntax/parse/unescape_error_reporting.rs5
2 files changed, 7 insertions, 1 deletions
diff --git a/src/libsyntax/parse/unescape.rs b/src/libsyntax/parse/unescape.rs
index e816aa0271c..22cce67b5ee 100644
--- a/src/libsyntax/parse/unescape.rs
+++ b/src/libsyntax/parse/unescape.rs
@@ -12,6 +12,7 @@ pub(crate) enum EscapeError {
     LoneSlash,
     InvalidEscape,
     BareCarriageReturn,
+    BareCarriageReturnInRawString,
     EscapeOnlyChar,
 
     TooShortHexEscape,
@@ -299,7 +300,7 @@ where
                 chars.next();
                 Ok('\n')
             },
-            ('\r', _) => Err(EscapeError::BareCarriageReturn),
+            ('\r', _) => Err(EscapeError::BareCarriageReturnInRawString),
             (c, _) if mode.is_bytes() && !c.is_ascii() =>
                 Err(EscapeError::NonAsciiCharInByteString),
             (c, _) => Ok(c),
diff --git a/src/libsyntax/parse/unescape_error_reporting.rs b/src/libsyntax/parse/unescape_error_reporting.rs
index 8f152974a6d..71b41161ad8 100644
--- a/src/libsyntax/parse/unescape_error_reporting.rs
+++ b/src/libsyntax/parse/unescape_error_reporting.rs
@@ -80,6 +80,11 @@ pub(crate) fn emit_unescape_error(
             };
             handler.span_err(span, msg);
         }
+        EscapeError::BareCarriageReturnInRawString => {
+            assert!(mode.in_double_quotes());
+            let msg = "bare CR not allowed in raw string";
+            handler.span_err(span, msg);
+        }
         EscapeError::InvalidEscape => {
             let (c, span) = last_char();