Add GUI test to ensure that implementations on foreign types are in the expected order

This commit is contained in:
Guillaume Gomez 2023-11-02 18:01:28 +01:00
parent aa9d1d87fa
commit 2e4a36bb53
3 changed files with 26 additions and 1 deletions

View 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]")

View file

@ -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})

View file

@ -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]) {}
}
}