about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorkeatinge <willy.keatinge@gmail.com>2018-01-06 10:01:54 -0500
committerkeatinge <willy.keatinge@gmail.com>2018-01-06 10:01:54 -0500
commitdcb53d754bed44ad72edf19889daf06e54a70a5b (patch)
treeb1f8ff402e673cca76c4f59a9fe31c4f6938ca47 /src/libsyntax/parse
parent13576dfcd424570f12e2a225c53f3ba83712d048 (diff)
downloadrust-dcb53d754bed44ad72edf19889daf06e54a70a5b.tar.gz
rust-dcb53d754bed44ad72edf19889daf06e54a70a5b.zip
Emit non-fatal error instead
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/parser.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index e7c46bfd7bc..3fd73418df5 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -3431,15 +3431,17 @@ impl<'a> Parser<'a> {
         let mut pats = Vec::new();
         loop {
             pats.push(self.parse_pat()?);
-            if self.check(&token::BinOp(token::Or)) { self.bump();}
-            else {
-                // Accidental use of || instead of | inbetween patterns
-                if self.token == token::OrOr {
-                    return Err(self.span_fatal_help(
-                           self.span, "unexpected token `||` after pattern",
-                           "did you mean to use `|` to specify multiple patterns instead?"));
-                }
 
+            if self.token == token::OrOr {
+                self.span_err_help(self.span,
+                                   "unexpected token `||` after pattern",
+                                   "did you mean to use `|` to specify multiple patterns?");
+                self.bump();
+            }
+            else if self.check(&token::BinOp(token::Or)) {
+                self.bump();
+            }
+            else {
                 return Ok(pats);
             }
         };