diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2017-11-20 21:50:05 +0100 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2017-11-20 21:53:19 +0100 |
| commit | 09dcc5f361bb6d68251ff2cbc4a76b13f173ec7b (patch) | |
| tree | 70b98526262647b822ba0af2bd365cbd48ab0109 /src/librustdoc/html | |
| parent | e06138338f78cd2695f857855e685e9e50a2486b (diff) | |
| download | rust-09dcc5f361bb6d68251ff2cbc4a76b13f173ec7b.tar.gz rust-09dcc5f361bb6d68251ff2cbc4a76b13f173ec7b.zip | |
Display negative traits implementation
Diffstat (limited to 'src/librustdoc/html')
| -rw-r--r-- | src/librustdoc/html/render.rs | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index e79a63fb8d8..c1402e00272 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -3613,18 +3613,24 @@ fn sidebar_assoc_items(it: &clean::Item) -> String { } let mut links = HashSet::new(); let ret = v.iter() - .filter_map(|i| if let Some(ref i) = i.inner_impl().trait_ { - let i_display = format!("{:#}", i); - let out = Escape(&i_display); - let encoded = small_url_encode(&format!("{:#}", i)); - let generated = format!("<a href=\"#impl-{}\">{}</a>", encoded, out); - if !links.contains(&generated) && links.insert(generated.clone()) { - Some(generated) + .filter_map(|i| { + let is_negative_impl = is_negative_impl(i.inner_impl()); + if let Some(ref i) = i.inner_impl().trait_ { + let i_display = format!("{:#}", i); + let out = Escape(&i_display); + let encoded = small_url_encode(&format!("{:#}", i)); + let generated = format!("<a href=\"#impl-{}\">{}{}</a>", + encoded, + if is_negative_impl { "!" } else { "" }, + out); + if !links.contains(&generated) && links.insert(generated.clone()) { + Some(generated) + } else { + None + } } else { None } - } else { - None }) .collect::<String>(); if !ret.is_empty() { @@ -3671,6 +3677,10 @@ fn extract_for_impl_name(item: &clean::Item) -> Option<(String, String)> { } } +fn is_negative_impl(i: &clean::Impl) -> bool { + i.polarity == Some(clean::ImplPolarity::Negative) +} + fn sidebar_trait(fmt: &mut fmt::Formatter, it: &clean::Item, t: &clean::Trait) -> fmt::Result { let mut sidebar = String::new(); |
