rustdoc: search for tuples and unit by type with ()

This commit is contained in:
Michael Howell 2023-09-29 12:52:30 -07:00
parent a75fed74b6
commit f6a045cc6b
9 changed files with 616 additions and 54 deletions

View file

@ -0,0 +1,80 @@
// exact-check
const EXPECTED = [
{
'query': '()',
'returned': [
{ 'path': 'tuple_unit', 'name': 'side_effect' },
{ 'path': 'tuple_unit', 'name': 'one' },
{ 'path': 'tuple_unit', 'name': 'two' },
{ 'path': 'tuple_unit', 'name': 'nest' },
],
'in_args': [],
},
{
'query': 'primitive:unit',
'returned': [
{ 'path': 'tuple_unit', 'name': 'side_effect' },
],
'in_args': [],
},
{
'query': 'primitive:tuple',
'returned': [
{ 'path': 'tuple_unit', 'name': 'one' },
{ 'path': 'tuple_unit', 'name': 'two' },
{ 'path': 'tuple_unit', 'name': 'nest' },
],
'in_args': [],
},
{
'query': '(P)',
'returned': [
{ 'path': 'tuple_unit', 'name': 'not_tuple' },
{ 'path': 'tuple_unit', 'name': 'one' },
{ 'path': 'tuple_unit', 'name': 'two' },
],
'in_args': [],
},
{
'query': '(P,)',
'returned': [
{ 'path': 'tuple_unit', 'name': 'one' },
{ 'path': 'tuple_unit', 'name': 'two' },
],
'in_args': [],
},
{
'query': '(P, P)',
'returned': [
{ 'path': 'tuple_unit', 'name': 'two' },
],
'in_args': [],
},
{
'query': '(P, ())',
'returned': [],
'in_args': [],
},
{
'query': '(Q, ())',
'returned': [
{ 'path': 'tuple_unit', 'name': 'nest' },
],
'in_args': [],
},
{
'query': '(R)',
'returned': [
{ 'path': 'tuple_unit', 'name': 'nest' },
],
'in_args': [],
},
{
'query': '(u32)',
'returned': [
{ 'path': 'tuple_unit', 'name': 'nest' },
],
'in_args': [],
},
];

View file

@ -0,0 +1,18 @@
pub struct P;
pub struct Q;
pub struct R<T>(T);
// Checks that tuple and unit both work
pub fn side_effect() { }
// Check a non-tuple
pub fn not_tuple() -> P { loop {} }
// Check a 1-tuple
pub fn one() -> (P,) { loop {} }
// Check a 2-tuple
pub fn two() -> (P,P) { loop {} }
// Check a nested tuple
pub fn nest() -> (Q, R<(u32,)>) { loop {} }