]> git.lizzy.rs Git - rust.git/commitdiff
Tag derived impls with #[automatically_derived]
authorSteven Fackler <sfackler@gmail.com>
Sun, 16 Mar 2014 05:49:41 +0000 (22:49 -0700)
committerSteven Fackler <sfackler@gmail.com>
Sun, 16 Mar 2014 05:49:41 +0000 (22:49 -0700)
This will enable rustdoc to treat them specially.

src/librustc/middle/lint.rs
src/libsyntax/ext/deriving/generic.rs

index ae2600533559b7c0ad0f8c05da11588edf2ee361..9a6ea297af096210d81930226b2cfa6bb8256464 100644 (file)
@@ -985,7 +985,7 @@ fn check_heap_item(cx: &Context, it: &ast::Item) {
     "crate_map", "cfg", "doc", "export_name", "link_section",
     "no_mangle", "static_assert", "unsafe_no_drop_flag", "packed",
     "simd", "repr", "deriving", "unsafe_destructor", "link", "phase",
-    "macro_export", "must_use",
+    "macro_export", "must_use", "automatically_derived",
 
     //mod-level
     "path", "link_name", "link_args", "macro_escape", "no_implicit_prelude",
index bc314bc204bec9e08046890ac68722bda271af2f..2a828cd58003c0cf4fe2f4fd4c2d149323738caa 100644 (file)
@@ -186,7 +186,6 @@ fn eq(&self, other: &int) -> bool {
 use codemap::Span;
 use opt_vec;
 use parse::token::InternedString;
-use parse::token;
 
 use std::vec_ng::Vec;
 use std::vec_ng;
@@ -399,19 +398,16 @@ fn create_derived_impl(&self,
             cx.path_all(self.span, false, vec!( type_ident ), self_lifetimes,
                         opt_vec::take_vec(self_ty_params)), None);
 
-        let doc_attr = cx.attribute(
+        let attr = cx.attribute(
             self.span,
-            cx.meta_name_value(self.span,
-                               InternedString::new("doc"),
-                               ast::LitStr(token::intern_and_get_ident(
-                                               "Automatically derived."),
-                                           ast::CookedStr)));
+            cx.meta_word(self.span,
+                         InternedString::new("automatically_derived")));
         let opt_trait_ref = Some(trait_ref);
         let ident = ast_util::impl_pretty_name(&opt_trait_ref, self_type);
         cx.item(
             self.span,
             ident,
-            vec_ng::append(vec!(doc_attr), self.attributes.as_slice()),
+            vec_ng::append(vec!(attr), self.attributes.as_slice()),
             ast::ItemImpl(trait_generics, opt_trait_ref,
                           self_type, methods.map(|x| *x)))
     }