about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/parser.rs28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index df4ccc94c04..6379015055b 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -548,20 +548,20 @@ impl<'a> Parser<'a> {
             expected.dedup();
             let expect = tokens_to_string(&expected[..]);
             let actual = self.this_token_to_string();
-            Err(self.fatal(
-                &(if expected.len() > 1 {
-                    (format!("expected one of {}, found `{}`",
-                             expect,
-                             actual))
-                } else if expected.is_empty() {
-                    (format!("unexpected token: `{}`",
-                             actual))
-                } else {
-                    (format!("expected {}, found `{}`",
-                             expect,
-                             actual))
-                })[..]
-            ))
+            let (msg_exp, label_exp) = if expected.len() > 1 {
+                (format!("expected one of {}, found `{}`", expect, actual),
+                 format!("expected one of {} after this", expect))
+            } else if expected.is_empty() {
+                (format!("unexpected token: `{}`", actual),
+                 "unexpected token after this".to_string())
+            } else {
+                (format!("expected {}, found `{}`", expect, actual),
+                 format!("expected {} after this", expect))
+            };
+            let mut err = self.fatal(&msg_exp);
+            err.span_label(self.prev_span, &label_exp);
+            err.span_label(self.span, &"unexpected token");
+            Err(err)
         }
     }