rustdoc-search: fix bugs when unboxing and reordering combine
This commit is contained in:
parent
9ccb217422
commit
269cb57947
6 changed files with 393 additions and 253 deletions
|
@ -79,6 +79,7 @@ const EXPECTED = [
|
|||
{ 'path': 'generics_match_ambiguity', 'name': 'baac' },
|
||||
{ 'path': 'generics_match_ambiguity', 'name': 'baaf' },
|
||||
{ 'path': 'generics_match_ambiguity', 'name': 'baag' },
|
||||
{ 'path': 'generics_match_ambiguity', 'name': 'baah' },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
38
tests/rustdoc-js/generics-unbox.js
Normal file
38
tests/rustdoc-js/generics-unbox.js
Normal file
|
@ -0,0 +1,38 @@
|
|||
// exact-check
|
||||
|
||||
const EXPECTED = [
|
||||
{
|
||||
'query': 'Inside<T> -> Out1<T>',
|
||||
'others': [
|
||||
{ 'path': 'generics_unbox', 'name': 'alpha' },
|
||||
],
|
||||
},
|
||||
{
|
||||
'query': 'Inside<T> -> Out3<T>',
|
||||
'others': [
|
||||
{ 'path': 'generics_unbox', 'name': 'beta' },
|
||||
{ 'path': 'generics_unbox', 'name': 'gamma' },
|
||||
],
|
||||
},
|
||||
{
|
||||
'query': 'Inside<T> -> Out4<T>',
|
||||
'others': [
|
||||
{ 'path': 'generics_unbox', 'name': 'beta' },
|
||||
{ 'path': 'generics_unbox', 'name': 'gamma' },
|
||||
],
|
||||
},
|
||||
{
|
||||
'query': 'Inside<T> -> Out3<U, T>',
|
||||
'others': [
|
||||
{ 'path': 'generics_unbox', 'name': 'beta' },
|
||||
{ 'path': 'generics_unbox', 'name': 'gamma' },
|
||||
],
|
||||
},
|
||||
{
|
||||
'query': 'Inside<T> -> Out4<U, T>',
|
||||
'others': [
|
||||
{ 'path': 'generics_unbox', 'name': 'beta' },
|
||||
{ 'path': 'generics_unbox', 'name': 'gamma' },
|
||||
],
|
||||
},
|
||||
];
|
36
tests/rustdoc-js/generics-unbox.rs
Normal file
36
tests/rustdoc-js/generics-unbox.rs
Normal file
|
@ -0,0 +1,36 @@
|
|||
pub struct Out<A, B = ()> {
|
||||
a: A,
|
||||
b: B,
|
||||
}
|
||||
|
||||
pub struct Out1<A, const N: usize> {
|
||||
a: [A; N],
|
||||
}
|
||||
|
||||
pub struct Out2<A, const N: usize> {
|
||||
a: [A; N],
|
||||
}
|
||||
|
||||
pub struct Out3<A, B> {
|
||||
a: A,
|
||||
b: B,
|
||||
}
|
||||
|
||||
pub struct Out4<A, B> {
|
||||
a: A,
|
||||
b: B,
|
||||
}
|
||||
|
||||
pub struct Inside<T>(T);
|
||||
|
||||
pub fn alpha<const N: usize, T>(_: Inside<T>) -> Out<Out1<T, N>, Out2<T, N>> {
|
||||
loop {}
|
||||
}
|
||||
|
||||
pub fn beta<T, U>(_: Inside<T>) -> Out<Out3<T, U>, Out4<U, T>> {
|
||||
loop {}
|
||||
}
|
||||
|
||||
pub fn gamma<T, U>(_: Inside<T>) -> Out<Out3<U, T>, Out4<T, U>> {
|
||||
loop {}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue