about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2024-11-06 15:50:37 +0000
committerMichael Goulet <michael@errs.io>2024-11-06 15:50:50 +0000
commit7d8ca6d4fc650535480dda4faffa8078e2b1206c (patch)
tree9c9b4acc92af6c1e03d5c51f05e771d9ce3425cc
parent4d215e2426d52ca8d1af166d5f6b5e172afbff67 (diff)
downloadrust-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.rs2
-rw-r--r--tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs1
-rw-r--r--tests/rustdoc/inline_cross/auxiliary/assoc_item_trait_bounds.rs5
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