Auto merge of #117521 - GuillaumeGomez:impl-on-foreign-order, r=notriddle
Fix order of implementations in the "implementations on foreign types" section Fixes #117391. We forgot to run the `sort_by_cached_key` on this section. This fixes it. r? `@notriddle`
This commit is contained in:
commit
b20f40dba9
@ -991,7 +991,7 @@ fn trait_item(w: &mut Buffer, cx: &mut Context<'_>, m: &clean::Item, t: &clean::
|
||||
}
|
||||
}
|
||||
|
||||
let (local, foreign) =
|
||||
let (local, mut foreign) =
|
||||
implementors.iter().partition::<Vec<_>, _>(|i| i.is_on_local_type(cx));
|
||||
|
||||
let (mut synthetic, mut concrete): (Vec<&&Impl>, Vec<&&Impl>) =
|
||||
@ -999,6 +999,7 @@ fn trait_item(w: &mut Buffer, cx: &mut Context<'_>, m: &clean::Item, t: &clean::
|
||||
|
||||
synthetic.sort_by_cached_key(|i| ImplString::new(i, cx));
|
||||
concrete.sort_by_cached_key(|i| ImplString::new(i, cx));
|
||||
foreign.sort_by_cached_key(|i| ImplString::new(i, cx));
|
||||
|
||||
if !foreign.is_empty() {
|
||||
write_small_section_header(w, "foreign-impls", "Implementations on Foreign Types", "");
|
||||
|
6
tests/rustdoc-gui/impl_on_foreign_order.goml
Normal file
6
tests/rustdoc-gui/impl_on_foreign_order.goml
Normal file
@ -0,0 +1,6 @@
|
||||
// This test ensures that the "implementations on foreign types" of a trait are correctly sorted.
|
||||
go-to: "file://" + |DOC_PATH| + "/test_docs/foreign_impl_order/trait.Foo.html"
|
||||
assert-text: ("details:nth-of-type(1) h3", "impl Foo<1> for [u8; 1]")
|
||||
assert-text: ("details:nth-of-type(2) h3", "impl Foo<2> for [u8; 2]")
|
||||
assert-text: ("details:nth-of-type(3) h3", "impl Foo<3> for [u8; 3]")
|
||||
assert-text: ("details:nth-of-type(4) h3", "impl Foo<4> for [u8; 4]")
|
@ -79,7 +79,7 @@ call-function: ("check-colors", {
|
||||
set-window-size: (851, 600)
|
||||
|
||||
// Check the size and count in tabs
|
||||
assert-text: ("#search-tabs > button:nth-child(1) > .count", " (24) ")
|
||||
assert-text: ("#search-tabs > button:nth-child(1) > .count", " (25) ")
|
||||
assert-text: ("#search-tabs > button:nth-child(2) > .count", " (5) ")
|
||||
assert-text: ("#search-tabs > button:nth-child(3) > .count", " (0) ")
|
||||
store-property: ("#search-tabs > button:nth-child(1)", {"offsetWidth": buttonWidth})
|
||||
|
@ -574,3 +574,22 @@ fn method_impl_disambiguation(&self, x: usize) -> usize {
|
||||
x
|
||||
}
|
||||
}
|
||||
|
||||
pub mod foreign_impl_order {
|
||||
pub trait Foo<const W: usize> {
|
||||
fn f(&mut self, with: [u8; W]);
|
||||
}
|
||||
|
||||
impl Foo<4> for [u8; 4] {
|
||||
fn f(&mut self, fg: [u8; 4]) {}
|
||||
}
|
||||
impl Foo<2> for [u8; 2] {
|
||||
fn f(&mut self, fg: [u8; 2]) {}
|
||||
}
|
||||
impl Foo<1> for [u8; 1] {
|
||||
fn f(&mut self, fg: [u8; 1]) {}
|
||||
}
|
||||
impl Foo<3> for [u8; 3] {
|
||||
fn f(&mut self, fg: [u8; 3]) {}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user