Skip to content

Commit

Permalink
Rollup merge of rust-lang#67152 - GuillaumeGomez:sort-auto-impls, r=k…
Browse files Browse the repository at this point in the history
…innison

Sort auto trait and blanket implementations display

Fixes rust-lang#63042

r? @kinnison
  • Loading branch information
JohnTitor authored Dec 10, 2019
2 parents a7f9307 + 9e3e421 commit 071acdf
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 6 deletions.
11 changes: 11 additions & 0 deletions src/librustdoc/html/format.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,13 @@ impl Buffer {
}
}

crate fn new() -> Buffer {
Buffer {
for_html: false,
buffer: String::new(),
}
}

crate fn is_empty(&self) -> bool {
self.buffer.is_empty()
}
Expand Down Expand Up @@ -106,6 +113,10 @@ impl Buffer {
write!(self, "{:#}", t);
}
}

crate fn is_for_html(&self) -> bool {
self.for_html
}
}

/// Wrapper struct for properly emitting a function or method declaration.
Expand Down
23 changes: 17 additions & 6 deletions src/librustdoc/html/render.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2282,12 +2282,23 @@ fn render_implementor(cx: &Context, implementor: &Impl, w: &mut Buffer,
fn render_impls(cx: &Context, w: &mut Buffer,
traits: &[&&Impl],
containing_item: &clean::Item) {
for i in traits {
let did = i.trait_did().unwrap();
let assoc_link = AssocItemLink::GotoSource(did, &i.inner_impl().provided_trait_methods);
render_impl(w, cx, i, assoc_link,
RenderMode::Normal, containing_item.stable_since(), true, None, false, true);
}
let mut impls = traits.iter()
.map(|i| {
let did = i.trait_did().unwrap();
let assoc_link = AssocItemLink::GotoSource(did, &i.inner_impl().provided_trait_methods);
let mut buffer = if w.is_for_html() {
Buffer::html()
} else {
Buffer::new()
};
render_impl(&mut buffer, cx, i, assoc_link,
RenderMode::Normal, containing_item.stable_since(),
true, None, false, true);
buffer.into_inner()
})
.collect::<Vec<_>>();
impls.sort();
w.write_str(&impls.join(""));
}

fn bounds(t_bounds: &[clean::GenericBound], trait_alias: bool) -> String {
Expand Down

0 comments on commit 071acdf

Please sign in to comment.