]> git.lizzy.rs Git - rust.git/commitdiff
add declaration blocks to attribute/derive pages
authorQuietMisdreavus <grey@quietmisdreavus.net>
Wed, 26 Sep 2018 14:18:58 +0000 (09:18 -0500)
committerQuietMisdreavus <grey@quietmisdreavus.net>
Wed, 26 Sep 2018 14:18:58 +0000 (09:18 -0500)
src/librustdoc/html/render.rs

index dc3255d2e528a88c45bd0e494d028a9f70f7177f..107858ae60527c490f662bc6e6175cefca096dd1 100644 (file)
@@ -4611,10 +4611,24 @@ fn item_macro(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
 fn item_proc_macro(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, m: &clean::ProcMacro)
     -> fmt::Result
 {
-    if m.kind == MacroKind::Bang {
-        write!(w, "<pre class='rust macro'>")?;
-        write!(w, "{}!() {{ /* proc-macro */ }}", it.name.as_ref().unwrap())?;
-        write!(w, "</pre>")?;
+    let name = it.name.as_ref().expect("proc-macros always have names");
+    match m.kind {
+        MacroKind::Bang => {
+            write!(w, "<pre class='rust macro'>")?;
+            write!(w, "{}!() {{ /* proc-macro */ }}", name)?;
+            write!(w, "</pre>")?;
+        }
+        MacroKind::Attr => {
+            write!(w, "<pre class='rust attr'>")?;
+            write!(w, "#[{}]", name)?;
+            write!(w, "</pre>")?;
+        }
+        MacroKind::Derive => {
+            write!(w, "<pre class='rust derive'>")?;
+            write!(w, "#[derive({})]", name)?;
+            write!(w, "</pre>")?;
+        }
+        _ => {}
     }
     document(w, cx, it)
 }