about summary refs log tree commit diff
path: root/src/librustdoc/html
diff options
context:
space:
mode:
authorLeón Orell Valerian Liehr <me@fmease.dev>2023-04-04 02:09:23 +0200
committerLeón Orell Valerian Liehr <me@fmease.dev>2023-04-04 02:09:23 +0200
commit6567bc9a4778d44cb46b7732aec6452358c62312 (patch)
tree65acb8ae6dc27112b1dc27c1af04d0fed483f0d7 /src/librustdoc/html
parent480068c2359ea65df4481788b5ce717a548ce171 (diff)
downloadrust-6567bc9a4778d44cb46b7732aec6452358c62312.tar.gz
rust-6567bc9a4778d44cb46b7732aec6452358c62312.zip
rustdoc: escape GAT args in more cases
Diffstat (limited to 'src/librustdoc/html')
-rw-r--r--src/librustdoc/html/format.rs31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs
index 0895bb510d4..02b358e863b 100644
--- a/src/librustdoc/html/format.rs
+++ b/src/librustdoc/html/format.rs
@@ -1142,22 +1142,21 @@ fn fmt_type<'cx>(
             //        the ugliness comes from inlining across crates where
             //        everything comes in as a fully resolved QPath (hard to
             //        look at).
-            match href(trait_.def_id(), cx) {
-                Ok((ref url, _, ref path)) if !f.alternate() => {
-                    write!(
-                        f,
-                        "<a class=\"associatedtype\" href=\"{url}#{shortty}.{name}\" \
-                                    title=\"type {path}::{name}\">{name}</a>{args}",
-                        url = url,
-                        shortty = ItemType::AssocType,
-                        name = assoc.name,
-                        path = join_with_double_colon(path),
-                        args = assoc.args.print(cx),
-                    )?;
-                }
-                _ => write!(f, "{}{:#}", assoc.name, assoc.args.print(cx))?,
-            }
-            Ok(())
+            if !f.alternate() && let Ok((url, _, path)) = href(trait_.def_id(), cx) {
+                write!(
+                    f,
+                    "<a class=\"associatedtype\" href=\"{url}#{shortty}.{name}\" \
+                                title=\"type {path}::{name}\">{name}</a>",
+                    shortty = ItemType::AssocType,
+                    name = assoc.name,
+                    path = join_with_double_colon(&path),
+                )
+            } else {
+                write!(f, "{}", assoc.name)
+            }?;
+
+            // Carry `f.alternate()` into this display w/o branching manually.
+            fmt::Display::fmt(&assoc.args.print(cx), f)
         }
     }
 }