]> git.lizzy.rs Git - rust.git/commitdiff
Moved non_exhaustive message to fields/variants section and onto type.
authorDavid Wood <david@davidtw.co>
Thu, 12 Jul 2018 19:14:13 +0000 (20:14 +0100)
committerDavid Wood <david@davidtw.co>
Thu, 12 Jul 2018 19:21:45 +0000 (20:21 +0100)
src/librustdoc/html/render.rs
src/librustdoc/html/static/themes/dark.css
src/librustdoc/html/static/themes/light.css

index a13055c25e93af145d759f5e320f83724729225b..c344302cabf598cff0a740e223b3b3918a11ac83 100644 (file)
@@ -2194,7 +2194,6 @@ fn document(w: &mut fmt::Formatter, cx: &Context, item: &clean::Item) -> fmt::Re
         info!("Documenting {}", name);
     }
     document_stability(w, cx, item)?;
-    document_non_exhaustive(w, item)?;
     let prefix = render_assoc_const_value(item);
     document_full(w, item, cx, &prefix)?;
     Ok(())
@@ -2263,20 +2262,13 @@ fn document_stability(w: &mut fmt::Formatter, cx: &Context, item: &clean::Item)
     Ok(())
 }
 
+fn document_non_exhaustive_header(item: &clean::Item) -> &str {
+    if item.is_non_exhaustive() { " (Non-exhaustive)" } else { "" }
+}
+
 fn document_non_exhaustive(w: &mut fmt::Formatter, item: &clean::Item) -> fmt::Result {
     if item.is_non_exhaustive() {
-        write!(w, "<div class='non-exhaustive'><div class='stab non-exhaustive'>")?;
-        write!(w, "<details><summary><span class=microscope>🔬</span>")?;
-
-        if item.is_struct() {
-            write!(w, "This struct is marked as non exhaustive.")?;
-        } else if item.is_enum() {
-            write!(w, "This enum is marked as non exhaustive.")?;
-        } else {
-            write!(w, "This type is marked as non exhaustive.")?;
-        }
-
-        write!(w, "</summary><p>")?;
+        write!(w, "<p class='non-exhaustive'>")?;
 
         if item.is_struct() {
             write!(w, "This struct is marked as non-exhaustive as additional fields may be \
@@ -2293,7 +2285,7 @@ fn document_non_exhaustive(w: &mut fmt::Formatter, item: &clean::Item) -> fmt::R
                        constructors.")?;
         }
 
-        write!(w, "</p></details></div></div>")?;
+        write!(w, "</p>")?;
     }
 
     Ok(())
@@ -3159,7 +3151,9 @@ fn item_struct(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
     if let doctree::Plain = s.struct_type {
         if fields.peek().is_some() {
             write!(w, "<h2 id='fields' class='fields small-section-header'>
-                       Fields<a href='#fields' class='anchor'></a></h2>")?;
+                       Fields{}<a href='#fields' class='anchor'></a></h2>",
+                       document_non_exhaustive_header(it))?;
+            document_non_exhaustive(w, it)?;
             for (field, ty) in fields {
                 let id = derive_id(format!("{}.{}",
                                            ItemType::StructField,
@@ -3291,7 +3285,9 @@ fn item_enum(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
     document(w, cx, it)?;
     if !e.variants.is_empty() {
         write!(w, "<h2 id='variants' class='variants small-section-header'>
-                   Variants<a href='#variants' class='anchor'></a></h2>\n")?;
+                   Variants{}<a href='#variants' class='anchor'></a></h2>\n",
+                   document_non_exhaustive_header(it))?;
+        document_non_exhaustive(w, it)?;
         for variant in &e.variants {
             let id = derive_id(format!("{}.{}",
                                        ItemType::Variant,
@@ -3392,7 +3388,8 @@ fn render_attribute(attr: &ast::MetaItem) -> Option<String> {
     "must_use",
     "no_mangle",
     "repr",
-    "unsafe_destructor_blind_to_params"
+    "unsafe_destructor_blind_to_params",
+    "non_exhaustive"
 ];
 
 fn render_attributes(w: &mut fmt::Formatter, it: &clean::Item) -> fmt::Result {
index bb33cd0302554bb429c7b79cf05c8040a5b6f9d7..f97ff45b22f7a715d45b3c8b25840002773582cc 100644 (file)
@@ -148,6 +148,8 @@ pre {
 .content .fnname{ color: #2BAB63; }
 .content span.keyword, .content a.keyword, .block a.current.keyword { color: #de5249; }
 
+.non-exhaustive { color: #DDD; margin-bottom: 1em; }
+
 pre.rust .comment { color: #8d8d8b; }
 pre.rust .doccomment { color: #8ca375; }
 
@@ -188,7 +190,6 @@ a.test-arrow {
        border-color: #008dfd;
 }
 
-.stab.non-exhaustive { background: #2a2a2a; border-color: #707070; }
 .stab.unstable { background: #FFF5D6; border-color: #FFC600; color: #404040; }
 .stab.deprecated { background: #F3DFFF; border-color: #7F0087;  color: #404040; }
 .stab.portability { background: #C4ECFF; border-color: #7BA5DB;  color: #404040; }
index 3c3372aedd48c16a3c670fd9a0639da1f726a15f..da8b24f3b171f45e37803952399255cd6cef276b 100644 (file)
@@ -148,6 +148,8 @@ pre {
 .content .fnname { color: #9a6e31; }
 .content span.keyword, .content a.keyword, .block a.current.keyword { color: #de5249; }
 
+.non-exhaustive { color: #222; margin-bottom: 1em; }
+
 pre.rust .comment { color: #8E908C; }
 pre.rust .doccomment { color: #4D4D4C; }
 
@@ -188,7 +190,6 @@ a.test-arrow {
        border-color: #66afe9;
 }
 
-.stab.non-exhaustive { background: #F5F5F5; border-color: #D3D3D3; }
 .stab.unstable { background: #FFF5D6; border-color: #FFC600; }
 .stab.deprecated { background: #F3DFFF; border-color: #7F0087; }
 .stab.portability { background: #C4ECFF; border-color: #7BA5DB; }