diff options
| author | Michael Goulet <michael@errs.io> | 2024-11-06 15:50:37 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-11-06 15:50:50 +0000 |
| commit | 7d8ca6d4fc650535480dda4faffa8078e2b1206c (patch) | |
| tree | 9c9b4acc92af6c1e03d5c51f05e771d9ce3425cc | |
| parent | 4d215e2426d52ca8d1af166d5f6b5e172afbff67 (diff) | |
| download | rust-7d8ca6d4fc650535480dda4faffa8078e2b1206c.tar.gz rust-7d8ca6d4fc650535480dda4faffa8078e2b1206c.zip | |
Clean middle generics using paren sugar if trait has rustc_paren_sugar
| -rw-r--r-- | src/librustdoc/clean/utils.rs | 2 | ||||
| -rw-r--r-- | tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs | 1 | ||||
| -rw-r--r-- | tests/rustdoc/inline_cross/auxiliary/assoc_item_trait_bounds.rs | 5 |
3 files changed, 7 insertions, 1 deletions
diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs index d3a545fe0b6..560831197f0 100644 --- a/src/librustdoc/clean/utils.rs +++ b/src/librustdoc/clean/utils.rs @@ -206,7 +206,7 @@ fn clean_middle_generic_args_with_constraints<'tcx>( ) -> GenericArgs { let args = clean_middle_generic_args(cx, ty_args.map_bound(|args| &args[..]), has_self, did); - if cx.tcx.fn_trait_kind_from_def_id(did).is_some() { + if cx.tcx.is_trait(did) && cx.tcx.trait_def(did).paren_sugar { let ty = ty_args .iter() .nth(if has_self { 1 } else { 0 }) diff --git a/tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs b/tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs index 346f7120b5b..d301c355994 100644 --- a/tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs +++ b/tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs @@ -22,6 +22,7 @@ extern crate assoc_item_trait_bounds as aux; //@ has - '//*[@id="associatedtype.Out12"]' "type Out12: for<'w> Helper<B<'w> = Cow<'w, str>, A<'w> = bool>" //@ has - '//*[@id="associatedtype.Out13"]' "type Out13: for<'fst, 'snd> Aid<'snd, Result<'fst> = &'fst mut str>" //@ has - '//*[@id="associatedtype.Out14"]' "type Out14<P: Copy + Eq, Q: ?Sized>" +//@ has - '//*[@id="associatedtype.Out15"]' "type Out15: AsyncFnMut(i32) -> bool" // // Snapshots: // Check that we don't render any where-clauses for the following associated types since diff --git a/tests/rustdoc/inline_cross/auxiliary/assoc_item_trait_bounds.rs b/tests/rustdoc/inline_cross/auxiliary/assoc_item_trait_bounds.rs index 551e97a2fa9..56708ec9310 100644 --- a/tests/rustdoc/inline_cross/auxiliary/assoc_item_trait_bounds.rs +++ b/tests/rustdoc/inline_cross/auxiliary/assoc_item_trait_bounds.rs @@ -1,3 +1,7 @@ +#![feature(async_closure)] + +use std::ops::AsyncFnMut; + pub trait Main { type Item; @@ -16,6 +20,7 @@ pub trait Main { type Out12: for<'w> Helper<B<'w> = std::borrow::Cow<'w, str>, A<'w> = bool>; type Out13: for<'fst, 'snd> Aid<'snd, Result<'fst> = &'fst mut str>; type Out14<P: Copy + Eq, Q: ?Sized>; + type Out15: AsyncFnMut(i32) -> bool; fn make<F>(_: F, _: impl FnMut(&str) -> bool) where |
