Rollup merge of #109937 - compiler-errors:rustdoc-rpit-cant-be-documented, r=GuillaumeGomez
Don't collect return-position impl traits for documentation #104889 modified the rustdoc ast collection step to use a HIR visitor, which more thoroughly walks the HIR tree. that means that we're going to encounter inner items (incl return-position impl traits and async fn opaque futures) that are not possible to document. FIxes (but does not close due to being a beta regression) #109931 r? `@GuillaumeGomez`
This commit is contained in:
commit
d984671246
@ -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.
|
||||
|
15
tests/rustdoc/async-fn-opaque-item.rs
Normal file
15
tests/rustdoc/async-fn-opaque-item.rs
Normal 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() {}
|
Loading…
Reference in New Issue
Block a user