about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorDavid Cao <dcao@protonmail.com>2018-05-28 20:19:44 -0700
committerDavid Cao <dcao@protonmail.com>2018-06-08 15:32:28 -0700
commit313d6c53df9a2725ab62c653c8e87100ec45724f (patch)
tree89a420f70ab7d0e7b280f54731d041bc28fb5dd7 /src/libsyntax/parse
parentc40275b34f8a2b6a289181d1d5f376ff7c64f0c5 (diff)
downloadrust-313d6c53df9a2725ab62c653c8e87100ec45724f.tar.gz
rust-313d6c53df9a2725ab62c653c8e87100ec45724f.zip
provide error message when using more than 65535 hash symbols for raw strings
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/lexer/mod.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libsyntax/parse/lexer/mod.rs b/src/libsyntax/parse/lexer/mod.rs
index 04e180cd053..893a907e786 100644
--- a/src/libsyntax/parse/lexer/mod.rs
+++ b/src/libsyntax/parse/lexer/mod.rs
@@ -1452,6 +1452,13 @@ impl<'a> StringReader<'a> {
                 self.bump();
                 let mut hash_count: u16 = 0;
                 while self.ch_is('#') {
+                    if hash_count == 65535 {
+                        let bpos = self.next_pos;
+                        self.fatal_span_(start_bpos,
+                                         bpos,
+                                         "too many `#` symbols: raw strings may be \
+                                         delimited by up to 65535 `#` symbols").raise();
+                    }
                     self.bump();
                     hash_count += 1;
                 }
@@ -1682,6 +1689,13 @@ impl<'a> StringReader<'a> {
         self.bump();
         let mut hash_count = 0;
         while self.ch_is('#') {
+            if hash_count == 65535 {
+                let bpos = self.next_pos;
+                self.fatal_span_(start_bpos,
+                                 bpos,
+                                 "too many `#` symbols: raw byte strings may be \
+                                 delimited by up to 65535 `#` symbols").raise();
+            }
             self.bump();
             hash_count += 1;
         }