]> git.lizzy.rs Git - rust.git/commitdiff
rebased
authorNick Cameron <ncameron@mozilla.com>
Wed, 15 Mar 2017 21:43:11 +0000 (10:43 +1300)
committerNick Cameron <ncameron@mozilla.com>
Tue, 4 Apr 2017 04:08:00 +0000 (16:08 +1200)
src/librustc_save_analysis/lib.rs

index b34cffd2d15bdb46e479cdfce2d59586dddbf801..44615071a56a71eb87e495b03b3907ddb91bcc30 100644 (file)
@@ -125,6 +125,7 @@ pub fn get_extern_item_data(&self, item: &ast::ForeignItem) -> Option<Data> {
         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 @@ pub fn get_extern_item_data(&self, item: &ast::ForeignItem) -> Option<Data> {
                     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 @@ pub fn get_extern_item_data(&self, item: &ast::ForeignItem) -> Option<Data> {
                     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 @@ fn sig_base_extern(&self, item: &ast::ForeignItem) -> Signature {
         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,