about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-06-15 19:05:25 +0000
committerbors <bors@rust-lang.org>2018-06-15 19:05:25 +0000
commit967c1f3be1c9ce0469ae9e30659bdf4da5346a9f (patch)
treeacc58751578890cbb844cd6907c0022bc6062a45 /src/libsyntax/parse
parent24edc416ab3944b680fc73057879da7fa1d50c22 (diff)
parent313d6c53df9a2725ab62c653c8e87100ec45724f (diff)
downloadrust-967c1f3be1c9ce0469ae9e30659bdf4da5346a9f.tar.gz
rust-967c1f3be1c9ce0469ae9e30659bdf4da5346a9f.zip
Auto merge of #50296 - cmdd:master, r=nikomatsakis
Add error message for using >= 65535 hashes for raw string literal escapes

Fixes #50111.
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 8363c1f39aa..5353ff9a1e1 100644
--- a/src/libsyntax/parse/lexer/mod.rs
+++ b/src/libsyntax/parse/lexer/mod.rs
@@ -1450,6 +1450,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;
                 }
@@ -1680,6 +1687,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;
         }