diff options
| author | bors <bors@rust-lang.org> | 2023-07-27 14:10:02 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-07-27 14:10:02 +0000 |
| commit | b73e9a48aeeb44fa897ab820737dfd77c5076e01 (patch) | |
| tree | a3a054841d43d9ebcc73675f4ed69ed3233786bb /src/librustdoc/html | |
| parent | 49a16b64b0a288c744929d7c0458c048c3f4cbf0 (diff) | |
| parent | 218e88e5d8f6503fade7bc7f669c3d7dd5f5de07 (diff) | |
| download | rust-b73e9a48aeeb44fa897ab820737dfd77c5076e01.tar.gz rust-b73e9a48aeeb44fa897ab820737dfd77c5076e01.zip | |
Auto merge of #114130 - GuillaumeGomez:rollup-69ihuaj, r=GuillaumeGomez
Rollup of 7 pull requests Successful merges: - #114032 (typos) - #114059 (rustdoc: fix cross-crate `impl Sized` & `impl ?Sized`) - #114088 (Bump syn dependency) - #114091 (docs: fmt::Debug*: Fix comments for finish method.) - #114109 (Docs: Fix URL for `rmatches`) - #114117 (Restore region uniquification in the new solver 🎉 ) - #114123 (Turns out opaque types can have hidden types registered during mir validation) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'src/librustdoc/html')
| -rw-r--r-- | src/librustdoc/html/format.rs | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index f60f40267d6..eb5d3c88570 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -1102,22 +1102,35 @@ fn fmt_type<'cx>( }; let m = mutability.print_with_space(); let amp = if f.alternate() { "&" } else { "&" }; - match **ty { + + if let clean::Generic(name) = **ty { + return primitive_link( + f, + PrimitiveType::Reference, + &format!("{amp}{lt}{m}{name}"), + cx, + ); + } + + write!(f, "{amp}{lt}{m}")?; + + let needs_parens = match **ty { clean::DynTrait(ref bounds, ref trait_lt) if bounds.len() > 1 || trait_lt.is_some() => { - write!(f, "{}{}{}(", amp, lt, m)?; - fmt_type(ty, f, use_absolute, cx)?; - write!(f, ")") - } - clean::Generic(name) => { - primitive_link(f, PrimitiveType::Reference, &format!("{amp}{lt}{m}{name}"), cx) - } - _ => { - write!(f, "{}{}{}", amp, lt, m)?; - fmt_type(ty, f, use_absolute, cx) + true } + clean::ImplTrait(ref bounds) if bounds.len() > 1 => true, + _ => false, + }; + if needs_parens { + f.write_str("(")?; } + fmt_type(ty, f, use_absolute, cx)?; + if needs_parens { + f.write_str(")")?; + } + Ok(()) } clean::ImplTrait(ref bounds) => { if f.alternate() { |
