diff options
| author | Nick Cameron <ncameron@mozilla.com> | 2015-07-06 14:13:19 +1200 |
|---|---|---|
| committer | Nick Cameron <ncameron@mozilla.com> | 2015-07-21 21:55:19 +1200 |
| commit | f47d20aecdcd7db34d41ad1666fd3eee095cc943 (patch) | |
| tree | 7bad65f9a57209784410c8af9e2b42a5009eaea3 /src/libsyntax/parse/mod.rs | |
| parent | bf34187a2f874690798b06d9350c1f6c4755243a (diff) | |
| download | rust-f47d20aecdcd7db34d41ad1666fd3eee095cc943.tar.gz rust-f47d20aecdcd7db34d41ad1666fd3eee095cc943.zip | |
Use a span from the correct file for the inner span of a module
This basically only affects modules which are empty (or only contain comments). Closes #26755
Diffstat (limited to 'src/libsyntax/parse/mod.rs')
| -rw-r--r-- | src/libsyntax/parse/mod.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index d6c28d41447..34a63fc92fe 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -11,7 +11,7 @@ //! The main parser interface use ast; -use codemap::{Span, CodeMap, FileMap}; +use codemap::{self, Span, CodeMap, FileMap}; use diagnostic::{SpanHandler, Handler, Auto, FatalError}; use parse::attr::ParserAttr; use parse::parser::Parser; @@ -203,7 +203,14 @@ pub fn new_sub_parser_from_file<'a>(sess: &'a ParseSess, pub fn filemap_to_parser<'a>(sess: &'a ParseSess, filemap: Rc<FileMap>, cfg: ast::CrateConfig) -> Parser<'a> { - tts_to_parser(sess, filemap_to_tts(sess, filemap), cfg) + let end_pos = filemap.end_pos; + let mut parser = tts_to_parser(sess, filemap_to_tts(sess, filemap), cfg); + + if parser.token == token::Eof && parser.span == codemap::DUMMY_SP { + parser.span = codemap::mk_sp(end_pos, end_pos); + } + + parser } // must preserve old name for now, because quote! from the *existing* |
