Skip to content

Commit

Permalink
Auto merge of #132697 - compiler-errors:async-closure-sugar, r=fmease
Browse files Browse the repository at this point in the history
Clean middle generics using paren sugar if trait has `#[rustc_paren_sugar]`

That is to say, generalize the `Fn()` paren sugar handling to *any* trait that is marked with `rustc_paren_sugar`. This means that `AsyncFn` is also covered here.

r? fmease
  • Loading branch information
bors committed Nov 6, 2024
2 parents 4d215e2 + 7d8ca6d commit 116fc31
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/librustdoc/clean/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 })
Expand Down
1 change: 1 addition & 0 deletions tests/rustdoc/inline_cross/assoc_item_trait_bounds.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
#![feature(async_closure)]

use std::ops::AsyncFnMut;

pub trait Main {
type Item;

Expand All @@ -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
Expand Down

0 comments on commit 116fc31

Please sign in to comment.