about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNick Cameron <ncameron@mozilla.com>2017-02-02 16:23:27 +1300
committerNick Cameron <ncameron@mozilla.com>2017-02-02 16:23:27 +1300
commit395f23c9f7c7e1107dce5a05e71b3a9480d4e331 (patch)
treea0b110d257c297dbc0a410d3b50e105804a2bd97
parent24055d0f2aa8dce5caed7544e6006aa48dceaea5 (diff)
downloadrust-395f23c9f7c7e1107dce5a05e71b3a9480d4e331.tar.gz
rust-395f23c9f7c7e1107dce5a05e71b3a9480d4e331.zip
save-analysis: be more paranoid about generated paths
fixes https://github.com/rust-lang-nursery/rls/issues/160
-rw-r--r--src/librustc_save_analysis/lib.rs3
-rw-r--r--src/libsyntax/parse/parser.rs1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs
index 8d0cdd1678c..ebb33a12c87 100644
--- a/src/librustc_save_analysis/lib.rs
+++ b/src/librustc_save_analysis/lib.rs
@@ -430,6 +430,9 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
                               -> Option<TypeRefData> {
         self.lookup_ref_id(trait_ref.ref_id).and_then(|def_id| {
             let span = trait_ref.path.span;
+            if generated_code(span) {
+                return None;
+            }
             let sub_span = self.span_utils.sub_span_for_type_name(span).or(Some(span));
             filter!(self.span_utils, sub_span, span, None);
             Some(TypeRefData {
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 3480db8ec3b..d2bc7bf4f48 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -1693,6 +1693,7 @@ impl<'a> Parser<'a> {
         }
 
         // Assemble the span.
+        // FIXME(#39450) This is bogus if part of the path is macro generated.
         let span = mk_sp(lo, self.prev_span.hi);
 
         // Assemble the result.