about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNick Cameron <ncameron@mozilla.com>2017-03-16 10:43:11 +1300
committerNick Cameron <ncameron@mozilla.com>2017-04-04 16:08:00 +1200
commitd76daf5c616f7969752e5370287f4495b95fe00c (patch)
tree286e9101deb35000ee966d53d43f1fad140a26aa
parentccdbb31a4773fcb44d046f02a822e54dfe132970 (diff)
downloadrust-d76daf5c616f7969752e5370287f4495b95fe00c.tar.gz
rust-d76daf5c616f7969752e5370287f4495b95fe00c.zip
rebased
-rw-r--r--src/librustc_save_analysis/lib.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs
index b34cffd2d15..44615071a56 100644
--- a/src/librustc_save_analysis/lib.rs
+++ b/src/librustc_save_analysis/lib.rs
@@ -125,6 +125,7 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
         match item.node {
             ast::ForeignItemKind::Fn(ref decl, ref generics) => {
                 let sub_span = self.span_utils.sub_span_after_keyword(item.span, keywords::Fn);
+                filter!(self.span_utils, sub_span, item.span, None);
                 Some(Data::FunctionData(FunctionData {
                     id: item.id,
                     name: item.ident.to_string(),
@@ -137,11 +138,13 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
                     parent: None,
                     docs: docs_for_attrs(&item.attrs),
                     sig: self.sig_base_extern(item),
+                    attributes: item.attrs.clone(),
                 }))
             }
             ast::ForeignItemKind::Static(ref ty, m) => {
                 let keyword = if m { keywords::Mut } else { keywords::Static };
                 let sub_span = self.span_utils.sub_span_after_keyword(item.span, keyword);
+                filter!(self.span_utils, sub_span, item.span, None);
                 Some(Data::VariableData(VariableData {
                     id: item.id,
                     kind: VariableKind::Static,
@@ -155,6 +158,7 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
                     visibility: From::from(&item.vis),
                     docs: docs_for_attrs(&item.attrs),
                     sig: Some(self.sig_base_extern(item)),
+                    attributes: item.attrs.clone(),
                 }))
             }
         }
@@ -797,7 +801,7 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
         let ident_start = text.find(&name).expect("Name not in signature?");
         let ident_end = ident_start + name.len();
         Signature {
-            span: mk_sp(item.span.lo, item.span.lo + BytePos(text.len() as u32)),
+            span: Span { hi: item.span.lo + BytePos(text.len() as u32), ..item.span },
             text: text,
             ident_start: ident_start,
             ident_end: ident_end,