about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2017-02-21 12:04:45 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2017-03-03 02:15:39 +0000
commita02c18aa524cf330237ec9d8dba202ad91904a88 (patch)
tree4f918786ad827ea10df6696a8e7c4f670a311dd2 /src/libsyntax/parse
parentf6eaaf350ea683ae8b33b4a79422ad1a10ea0987 (diff)
downloadrust-a02c18aa524cf330237ec9d8dba202ad91904a88.tar.gz
rust-a02c18aa524cf330237ec9d8dba202ad91904a88.zip
Fix `token::Eof` spans.
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/parser.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index c88b859e036..6e3724b5fd8 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -223,7 +223,7 @@ impl TokenCursor {
                 self.frame = frame;
                 continue
             } else {
-                return TokenAndSpan { tok: token::Eof, sp: self.frame.span }
+                return TokenAndSpan { tok: token::Eof, sp: syntax_pos::DUMMY_SP }
             };
 
             match tree {
@@ -448,10 +448,14 @@ impl<'a> Parser<'a> {
     }
 
     fn next_tok(&mut self) -> TokenAndSpan {
-        match self.desugar_doc_comments {
+        let mut next = match self.desugar_doc_comments {
             true => self.token_cursor.next_desugared(),
             false => self.token_cursor.next(),
+        };
+        if next.sp == syntax_pos::DUMMY_SP {
+            next.sp = self.prev_span;
         }
+        next
     }
 
     /// Convert a token to a string using self's reader