Don't collect return-position impl traits for documentation

This commit is contained in:
Michael Goulet 2023-04-04 13:23:33 +00:00
parent 7c96e40da8
commit 72ef85d83e
2 changed files with 24 additions and 1 deletions

View file

@ -421,12 +421,20 @@ fn visit_item_inner(
| hir::ItemKind::Struct(..)
| hir::ItemKind::Union(..)
| hir::ItemKind::TyAlias(..)
| hir::ItemKind::OpaqueTy(..)
| hir::ItemKind::OpaqueTy(hir::OpaqueTy {
origin: hir::OpaqueTyOrigin::TyAlias, ..
})
| hir::ItemKind::Static(..)
| hir::ItemKind::Trait(..)
| hir::ItemKind::TraitAlias(..) => {
self.add_to_current_mod(item, renamed, import_id);
}
hir::ItemKind::OpaqueTy(hir::OpaqueTy {
origin: hir::OpaqueTyOrigin::AsyncFn(_) | hir::OpaqueTyOrigin::FnReturn(_),
..
}) => {
// return-position impl traits are never nameable, and should never be documented.
}
hir::ItemKind::Const(..) => {
// Underscore constants do not correspond to a nameable item and
// so are never useful in documentation.

View file

@ -0,0 +1,15 @@
// compile-flags: --document-private-items --crate-type=lib
// edition: 2021
// Issue 109931 -- test against accidentally documenting the `impl Future`
// that comes from an async fn desugaring.
// Check that we don't document an unnamed opaque type
// @!has async_fn_opaque_item/opaque..html
// Checking there is only a "Functions" header and no "Opaque types".
// @has async_fn_opaque_item/index.html
// @count - '//*[@class="small-section-header"]' 1
// @has - '//*[@class="small-section-header"]' 'Functions'
pub async fn test() {}