From 9527d6ade742ac6d06cc110afc10d66a9ae1c101 Mon Sep 17 00:00:00 2001 From: David Wood Date: Thu, 12 Jul 2018 20:14:13 +0100 Subject: [PATCH] Moved non_exhaustive message to fields/variants section and onto type. --- src/librustdoc/html/render.rs | 31 ++++++++++----------- src/librustdoc/html/static/themes/dark.css | 3 +- src/librustdoc/html/static/themes/light.css | 3 +- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index a13055c25e9..c344302cabf 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -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, "
")?; - write!(w, "
🔬")?; - - 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, "

")?; + write!(w, "

")?; 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, "

")?; + write!(w, "

")?; } 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, "

- Fields

")?; + Fields{}", + 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, "

- Variants

\n")?; + Variants{}\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 { "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 { diff --git a/src/librustdoc/html/static/themes/dark.css b/src/librustdoc/html/static/themes/dark.css index bb33cd03025..f97ff45b22f 100644 --- a/src/librustdoc/html/static/themes/dark.css +++ b/src/librustdoc/html/static/themes/dark.css @@ -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; } diff --git a/src/librustdoc/html/static/themes/light.css b/src/librustdoc/html/static/themes/light.css index 3c3372aedd4..da8b24f3b17 100644 --- a/src/librustdoc/html/static/themes/light.css +++ b/src/librustdoc/html/static/themes/light.css @@ -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; }