about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-12-21 00:04:28 -0800
committerAlex Crichton <alex@alexcrichton.com>2014-12-21 09:27:37 -0800
commit97f605e858561b1ec69781a761f3a39942eaf28e (patch)
tree1816680d14b605ffa921b777390f4635ce752c26
parent40e1f7c6ba14b7a60d6d5abb0e86c7c3257ce802 (diff)
parentfb9b45189effece40b2b672fc4fd3b01e15f19cb (diff)
downloadrust-97f605e858561b1ec69781a761f3a39942eaf28e.tar.gz
rust-97f605e858561b1ec69781a761f3a39942eaf28e.zip
rollup merge of #20081: tomjakubowski/issue-19646
Encode foreign item attributes and stability levels and visit foreign
items in the stability visitor.

cc @Gankro
-rw-r--r--src/librustc/metadata/encoder.rs6
-rw-r--r--src/librustc/middle/stability.rs4
2 files changed, 10 insertions, 0 deletions
diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs
index deb86397eda..e5dae926db9 100644
--- a/src/librustc/metadata/encoder.rs
+++ b/src/librustc/metadata/encoder.rs
@@ -1478,6 +1478,9 @@ fn encode_info_for_foreign_item(ecx: &EncodeContext,
         if abi == abi::RustIntrinsic {
             encode_inlined_item(ecx, rbml_w, IIForeignRef(nitem));
         }
+        encode_attributes(rbml_w, &*nitem.attrs);
+        let stab = stability::lookup(ecx.tcx, ast_util::local_def(nitem.id));
+        encode_stability(rbml_w, stab);
         encode_symbol(ecx, rbml_w, nitem.id);
       }
       ast::ForeignItemStatic(_, mutbl) => {
@@ -1488,6 +1491,9 @@ fn encode_info_for_foreign_item(ecx: &EncodeContext,
         }
         encode_bounds_and_type(rbml_w, ecx,
                                &lookup_item_type(ecx.tcx,local_def(nitem.id)));
+        encode_attributes(rbml_w, &*nitem.attrs);
+        let stab = stability::lookup(ecx.tcx, ast_util::local_def(nitem.id));
+        encode_stability(rbml_w, stab);
         encode_symbol(ecx, rbml_w, nitem.id);
         encode_name(rbml_w, nitem.ident.name);
       }
diff --git a/src/librustc/middle/stability.rs b/src/librustc/middle/stability.rs
index c4a5fd2f14a..9d032df67dc 100644
--- a/src/librustc/middle/stability.rs
+++ b/src/librustc/middle/stability.rs
@@ -129,6 +129,10 @@ impl<'v> Visitor<'v> for Annotator {
         self.annotate(s.node.id, true, &s.node.attrs,
                       |v| visit::walk_struct_field(v, s));
     }
+
+    fn visit_foreign_item(&mut self, i: &ast::ForeignItem) {
+        self.annotate(i.id, &i.attrs, |_| {});
+    }
 }
 
 impl Index {