1
Fork 0

rustdoc-search: show impl Trait inline when unhighlighted

While normal generics can be skipped in this case, no-names need
something to show here.

Before: `TyCtxt, , Symbol -> bool`

After: `TyCtxt, Into<DefId>, Symbol -> bool`
This commit is contained in:
Michael Howell 2024-12-13 10:47:02 -07:00
parent 4847d6a9d0
commit f068d8b809
3 changed files with 42 additions and 1 deletions

View file

@ -2592,7 +2592,12 @@ class DocSearch {
const writeFn = (fnType, result) => { const writeFn = (fnType, result) => {
if (fnType.id < 0) { if (fnType.id < 0) {
if (fnParamNames[-1 - fnType.id] === "") { if (fnParamNames[-1 - fnType.id] === "") {
for (const nested of fnType.generics) { // Normally, there's no need to shown an unhighlighted
// where clause, but if it's impl Trait, then we do.
const generics = fnType.generics.length > 0 ?
fnType.generics :
obj.type.where_clause[-1 - fnType.id];
for (const nested of generics) {
writeFn(nested, result); writeFn(nested, result);
} }
return; return;

View file

@ -0,0 +1,25 @@
// exact-check
// ignore-order
const EXPECTED = [
{
'query': 'tyctxt, symbol -> bool',
'others': [
{
'path': 'foo::TyCtxt',
'name': 'has_attr',
'displayType': "`TyCtxt`, Into<DefId>, `Symbol` -> `bool`",
},
],
},
{
'query': 'tyctxt, into<defid>, symbol -> bool',
'others': [
{
'path': 'foo::TyCtxt',
'name': 'has_attr',
'displayType': "`TyCtxt`, `Into`<`DefId`>, `Symbol` -> `bool`",
},
],
},
];

View file

@ -0,0 +1,11 @@
#![crate_name="foo"]
pub struct TyCtxt;
pub struct DefId;
pub struct Symbol;
impl TyCtxt {
pub fn has_attr(self, _did: impl Into<DefId>, _attr: Symbol) -> bool {
unimplemented!();
}
}