about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCorey Richardson <corey@octayn.net>2014-07-28 01:02:31 -0700
committerCorey Richardson <corey@octayn.net>2014-07-28 01:03:38 -0700
commit8876ce44c59bbb20006ae5beccc9f6954e7d1e4f (patch)
treef75c28a7cefb012541dd15a8239c7dea6d267bf7
parentfc08779185e92e456be2e72170f25587d35350f8 (diff)
downloadrust-8876ce44c59bbb20006ae5beccc9f6954e7d1e4f.tar.gz
rust-8876ce44c59bbb20006ae5beccc9f6954e7d1e4f.zip
rustc: encode is_sugared_doc on ast::Attribute
-rw-r--r--src/librustc/metadata/common.rs2
-rw-r--r--src/librustc/metadata/decoder.rs5
-rw-r--r--src/librustc/metadata/encoder.rs1
3 files changed, 7 insertions, 1 deletions
diff --git a/src/librustc/metadata/common.rs b/src/librustc/metadata/common.rs
index 5edbe9b5a08..a42880b2d36 100644
--- a/src/librustc/metadata/common.rs
+++ b/src/librustc/metadata/common.rs
@@ -231,3 +231,5 @@ pub static tag_unboxed_closure_type: uint = 0x97;
 pub static tag_struct_fields: uint = 0x98;
 pub static tag_struct_field: uint = 0x99;
 pub static tag_struct_field_id: uint = 0x9a;
+
+pub static tag_attribute_is_sugared_doc: uint = 0x9b;
diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs
index 3cd8c55b066..f7576ffb481 100644
--- a/src/librustc/metadata/decoder.rs
+++ b/src/librustc/metadata/decoder.rs
@@ -1056,6 +1056,9 @@ fn get_attributes(md: ebml::Doc) -> Vec<ast::Attribute> {
     match reader::maybe_get_doc(md, tag_attributes) {
       Some(attrs_d) => {
         reader::tagged_docs(attrs_d, tag_attribute, |attr_doc| {
+            let is_sugared_doc = reader::doc_as_u8(
+                reader::get_doc(attr_doc, tag_attribute_is_sugared_doc)
+            ) == 1;
             let meta_items = get_meta_items(attr_doc);
             // Currently it's only possible to have a single meta item on
             // an attribute
@@ -1067,7 +1070,7 @@ fn get_attributes(md: ebml::Doc) -> Vec<ast::Attribute> {
                         id: attr::mk_attr_id(),
                         style: ast::AttrOuter,
                         value: meta_item,
-                        is_sugared_doc: false,
+                        is_sugared_doc: is_sugared_doc,
                     },
                     span: codemap::DUMMY_SP
                 });
diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs
index 2a7697f0a52..6665e913e19 100644
--- a/src/librustc/metadata/encoder.rs
+++ b/src/librustc/metadata/encoder.rs
@@ -1490,6 +1490,7 @@ fn encode_attributes(ebml_w: &mut Encoder, attrs: &[Attribute]) {
     ebml_w.start_tag(tag_attributes);
     for attr in attrs.iter() {
         ebml_w.start_tag(tag_attribute);
+        ebml_w.wr_tagged_u8(tag_attribute_is_sugared_doc, attr.node.is_sugared_doc as u8);
         encode_meta_item(ebml_w, attr.node.value);
         ebml_w.end_tag();
     }