Rollup merge of #86659 - notriddle:notriddle/generics-rustdoc, r=GuillaumeGomez
fix(rustdoc): generics search
This commit adds a test case for generics, re-adds generics data
to the search index, and tweaks function indexing to use less space in JSON.
This partially reverts commit 14ca89446c.
This commit is contained in:
commit
45a3cd5ea6
8 changed files with 191 additions and 19 deletions
7
src/test/rustdoc-js-std/alias-4.js
Normal file
7
src/test/rustdoc-js-std/alias-4.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
const QUERY = '<';
|
||||
|
||||
const EXPECTED = {
|
||||
'others': [
|
||||
{ 'name': 'Ord' },
|
||||
],
|
||||
};
|
||||
23
src/test/rustdoc-js/generics-trait.js
Normal file
23
src/test/rustdoc-js/generics-trait.js
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
const QUERY = [
|
||||
'Result<SomeTrait>',
|
||||
'OtherThingxxxxxxxx',
|
||||
];
|
||||
|
||||
const EXPECTED = [
|
||||
{
|
||||
'in_args': [
|
||||
{ 'path': 'generics_trait', 'name': 'beta' },
|
||||
],
|
||||
'returned': [
|
||||
{ 'path': 'generics_trait', 'name': 'bet' },
|
||||
],
|
||||
},
|
||||
{
|
||||
'in_args': [
|
||||
{ 'path': 'generics_trait', 'name': 'alpha' },
|
||||
],
|
||||
'returned': [
|
||||
{ 'path': 'generics_trait', 'name': 'alef' },
|
||||
],
|
||||
},
|
||||
];
|
||||
8
src/test/rustdoc-js/generics-trait.rs
Normal file
8
src/test/rustdoc-js/generics-trait.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
pub trait SomeTrait {}
|
||||
pub trait OtherThingxxxxxxxx {}
|
||||
|
||||
pub fn alef<T: OtherThingxxxxxxxx>() -> Result<T, ()> { loop {} }
|
||||
pub fn bet<T: SomeTrait>() -> Result<T, ()> { loop {} }
|
||||
|
||||
pub fn alpha<T: OtherThingxxxxxxxx>(_param: Result<T, ()>) { loop {} }
|
||||
pub fn beta<T: SomeTrait>(_param: Result<T, ()>) { loop {} }
|
||||
44
src/test/rustdoc-js/generics.js
Normal file
44
src/test/rustdoc-js/generics.js
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
// exact-check
|
||||
|
||||
const QUERY = [
|
||||
'"R<P>"',
|
||||
'"P"',
|
||||
'P',
|
||||
'"ExtraCreditStructMulti<ExtraCreditInnerMulti, ExtraCreditInnerMulti>"',
|
||||
];
|
||||
|
||||
const EXPECTED = [
|
||||
{
|
||||
'returned': [
|
||||
{ 'path': 'generics', 'name': 'alef' },
|
||||
],
|
||||
'in_args': [
|
||||
{ 'path': 'generics', 'name': 'alpha' },
|
||||
],
|
||||
},
|
||||
{
|
||||
'others': [
|
||||
{ 'path': 'generics', 'name': 'P' },
|
||||
],
|
||||
'returned': [
|
||||
{ 'path': 'generics', 'name': 'alef' },
|
||||
],
|
||||
'in_args': [
|
||||
{ 'path': 'generics', 'name': 'alpha' },
|
||||
],
|
||||
},
|
||||
{
|
||||
'returned': [
|
||||
{ 'path': 'generics', 'name': 'alef' },
|
||||
],
|
||||
'in_args': [
|
||||
{ 'path': 'generics', 'name': 'alpha' },
|
||||
],
|
||||
},
|
||||
{
|
||||
'in_args': [
|
||||
{ 'path': 'generics', 'name': 'extracreditlabhomework' },
|
||||
],
|
||||
'returned': [],
|
||||
},
|
||||
];
|
||||
21
src/test/rustdoc-js/generics.rs
Normal file
21
src/test/rustdoc-js/generics.rs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
pub struct P;
|
||||
pub struct Q;
|
||||
pub struct R<T>(T);
|
||||
|
||||
// returns test
|
||||
pub fn alef() -> R<P> { loop {} }
|
||||
pub fn bet() -> R<Q> { loop {} }
|
||||
|
||||
// in_args test
|
||||
pub fn alpha(_x: R<P>) { loop {} }
|
||||
pub fn beta(_x: R<Q>) { loop {} }
|
||||
|
||||
// test case with multiple appearances of the same type
|
||||
pub struct ExtraCreditStructMulti<T, U> { t: T, u: U }
|
||||
pub struct ExtraCreditInnerMulti {}
|
||||
pub fn extracreditlabhomework(
|
||||
_param: ExtraCreditStructMulti<ExtraCreditInnerMulti, ExtraCreditInnerMulti>
|
||||
) { loop {} }
|
||||
pub fn redherringmatchforextracredit(
|
||||
_param: ExtraCreditStructMulti<ExtraCreditInnerMulti, ()>
|
||||
) { loop {} }
|
||||
Loading…
Add table
Add a link
Reference in a new issue