about summary refs log tree commit diff
path: root/src/librustdoc
diff options
context:
space:
mode:
authorYotam Ofek <yotam.ofek@gmail.com>2025-02-10 17:37:33 +0000
committerYotam Ofek <yotam.ofek@gmail.com>2025-02-14 14:50:05 +0000
commit5c5763a6cfdb01016c8a0853f859d40bf50ff49c (patch)
tree06f0e0a7b8f331677e4a98fc0a6ee79b01fdbcd4 /src/librustdoc
parentbc061858d23cd970395023626ea9e5c30675bd7a (diff)
downloadrust-5c5763a6cfdb01016c8a0853f859d40bf50ff49c.tar.gz
rust-5c5763a6cfdb01016c8a0853f859d40bf50ff49c.zip
librustdoc: lazily format list of aliases in `render_impl_summary`
Diffstat (limited to 'src/librustdoc')
-rw-r--r--src/librustdoc/html/render/mod.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index c8db32ebcf9..6896925753a 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -63,7 +63,7 @@ pub(crate) use self::context::*;
 pub(crate) use self::span_map::{LinkFromSrc, collect_spans_and_sources};
 pub(crate) use self::write_shared::*;
 use crate::clean::{self, ItemId, RenderedLink};
-use crate::display::MaybeDisplay as _;
+use crate::display::{Joined as _, MaybeDisplay as _};
 use crate::error::Error;
 use crate::formats::Impl;
 use crate::formats::cache::Cache;
@@ -2142,11 +2142,11 @@ pub(crate) fn render_impl_summary(
 ) {
     let inner_impl = i.inner_impl();
     let id = cx.derive_id(get_id_for_impl(cx.tcx(), i.impl_item.item_id));
-    let aliases = if aliases.is_empty() {
-        String::new()
-    } else {
-        format!(" data-aliases=\"{}\"", aliases.join(","))
-    };
+    let aliases = (!aliases.is_empty())
+        .then_some(fmt::from_fn(|f| {
+            write!(f, " data-aliases=\"{}\"", fmt::from_fn(|f| aliases.iter().joined(",", f)))
+        }))
+        .maybe_display();
     write_str(w, format_args!("<section id=\"{id}\" class=\"impl\"{aliases}>"));
     render_rightside(w, cx, &i.impl_item, RenderMode::Normal);
     write_str(