rustdoc-search: fix bug with multi-item impl trait

This commit is contained in:
Michael Howell 2023-10-05 22:32:37 -07:00
parent 579be69de9
commit 1eb2a76641
3 changed files with 21 additions and 6 deletions

View File

@ -1555,7 +1555,7 @@ function initSearch(rawSearchIndex) {
return false;
}
}
} else if (fnType.id !== null) {
} else {
if (queryElem.id === typeNameIdOfArrayOrSlice &&
(fnType.id === typeNameIdOfSlice || fnType.id === typeNameIdOfArray)
) {

View File

@ -1,3 +1,4 @@
// exact-check
// ignore-order
const EXPECTED = [
@ -20,9 +21,16 @@ const EXPECTED = [
{
'query': '-> Aaaaaaa',
'others': [
{ 'path': 'impl_trait::Ccccccc', 'name': 'fffffff' },
{ 'path': 'impl_trait::Ccccccc', 'name': 'ddddddd' },
{ 'path': 'impl_trait', 'name': 'bbbbbbb' },
{ 'path': 'impl_trait::Ccccccc', 'name': 'ddddddd' },
{ 'path': 'impl_trait::Ccccccc', 'name': 'fffffff' },
{ 'path': 'impl_trait::Ccccccc', 'name': 'ggggggg' },
],
},
{
'query': '-> Bbbbbbb',
'others': [
{ 'path': 'impl_trait::Ccccccc', 'name': 'ggggggg' },
],
},
{
@ -31,13 +39,14 @@ const EXPECTED = [
{ 'path': 'impl_trait', 'name': 'Aaaaaaa' },
],
'in_args': [
{ 'path': 'impl_trait::Ccccccc', 'name': 'fffffff' },
{ 'path': 'impl_trait::Ccccccc', 'name': 'eeeeeee' },
{ 'path': 'impl_trait::Ccccccc', 'name': 'fffffff' },
],
'returned': [
{ 'path': 'impl_trait::Ccccccc', 'name': 'fffffff' },
{ 'path': 'impl_trait::Ccccccc', 'name': 'ddddddd' },
{ 'path': 'impl_trait', 'name': 'bbbbbbb' },
{ 'path': 'impl_trait::Ccccccc', 'name': 'ddddddd' },
{ 'path': 'impl_trait::Ccccccc', 'name': 'fffffff' },
{ 'path': 'impl_trait::Ccccccc', 'name': 'ggggggg' },
],
},
];

View File

@ -1,6 +1,9 @@
pub trait Aaaaaaa {}
pub trait Bbbbbbb {}
impl Aaaaaaa for () {}
impl Bbbbbbb for () {}
pub fn bbbbbbb() -> impl Aaaaaaa {
()
@ -18,4 +21,7 @@ pub fn eeeeeee(&self, _x: impl Aaaaaaa) -> i32 {
pub fn fffffff(&self, x: impl Aaaaaaa) -> impl Aaaaaaa {
x
}
pub fn ggggggg(&self) -> impl Aaaaaaa + Bbbbbbb {
()
}
}