about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustdoc/html/format.rs20
-rw-r--r--src/librustdoc/html/layout.rs2
-rw-r--r--src/librustdoc/html/render.rs10
-rw-r--r--src/librustdoc/html/sources.rs2
4 files changed, 18 insertions, 16 deletions
diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs
index 99ddbcd7170..5d86f056611 100644
--- a/src/librustdoc/html/format.rs
+++ b/src/librustdoc/html/format.rs
@@ -19,23 +19,25 @@ use crate::html::item_type::ItemType;
 use crate::html::render::{self, cache, CURRENT_DEPTH};
 
 pub trait Print {
-    fn print(&self, buffer: &mut Buffer);
+    fn print(self, buffer: &mut Buffer);
 }
 
-impl<T: ?Sized + Print> Print for &'_ T {
-    fn print(&self, buffer: &mut Buffer) {
-        (&**self).print(buffer)
+impl<F> Print for F
+    where F: FnOnce(&mut Buffer),
+{
+    fn print(self, buffer: &mut Buffer) {
+        (self)(buffer)
     }
 }
 
 impl Print for String {
-    fn print(&self, buffer: &mut Buffer) {
-        buffer.write_str(self);
+    fn print(self, buffer: &mut Buffer) {
+        buffer.write_str(&self);
     }
 }
 
-impl Print for str {
-    fn print(&self, buffer: &mut Buffer) {
+impl Print for &'_ str {
+    fn print(self, buffer: &mut Buffer) {
         buffer.write_str(self);
     }
 }
@@ -92,7 +94,7 @@ impl Buffer {
         self.buffer.write_fmt(v).unwrap();
     }
 
-    crate fn to_display<T: ?Sized + Print>(mut self, t: &T) -> String {
+    crate fn to_display<T: Print>(mut self, t: T) -> String {
         t.print(&mut self);
         self.into_inner()
     }
diff --git a/src/librustdoc/html/layout.rs b/src/librustdoc/html/layout.rs
index 38dcfbfcec4..1202f411f91 100644
--- a/src/librustdoc/html/layout.rs
+++ b/src/librustdoc/html/layout.rs
@@ -34,7 +34,7 @@ pub struct Page<'a> {
 pub fn render<T: fmt::Display, S: Print>(
     layout: &Layout,
     page: &Page<'_>,
-    sidebar: &S,
+    sidebar: S,
     t: &T,
     themes: &[PathBuf],
 ) -> String {
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index 40e7081c57c..fc7038f8bda 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -1174,7 +1174,7 @@ themePicker.onblur = handleThemeButtonsBlur;
                                     })
                                     .collect::<String>());
             let v = layout::render(&cx.shared.layout,
-                           &page, &(""), &content,
+                           &page, "", &content,
                            &cx.shared.themes);
             cx.shared.fs.write(&dst, v.as_bytes())?;
         }
@@ -1921,7 +1921,7 @@ impl Context {
             String::new()
         };
         let v = layout::render(&self.shared.layout,
-                       &page, &sidebar, &all,
+                       &page, sidebar, &all,
                        &self.shared.themes);
         self.shared.fs.write(&final_file, v.as_bytes())?;
 
@@ -1937,7 +1937,7 @@ impl Context {
         themes.push(PathBuf::from("settings.css"));
         let v = layout::render(
             &self.shared.layout,
-            &page, &sidebar, &settings,
+            &page, sidebar, &settings,
             &themes);
         self.shared.fs.write(&settings_file, v.as_bytes())?;
 
@@ -1994,7 +1994,7 @@ impl Context {
 
         if !self.render_redirect_pages {
             layout::render(&self.shared.layout, &page,
-                           &Sidebar{ cx: self, item: it },
+                           Sidebar{ cx: self, item: it },
                            &Item{ cx: self, item: it },
                            &self.shared.themes)
         } else {
@@ -4267,7 +4267,7 @@ fn item_foreign_type(w: &mut fmt::Formatter<'_>, cx: &Context, it: &clean::Item)
 }
 
 impl Print for Sidebar<'_> {
-    fn print(&self, buffer: &mut Buffer) {
+    fn print(self, buffer: &mut Buffer) {
         let cx = self.cx;
         let it = self.item;
         let parentlen = cx.current.len() - if it.is_mod() {1} else {0};
diff --git a/src/librustdoc/html/sources.rs b/src/librustdoc/html/sources.rs
index 018db3f9363..94ae1422609 100644
--- a/src/librustdoc/html/sources.rs
+++ b/src/librustdoc/html/sources.rs
@@ -120,7 +120,7 @@ impl<'a> SourceCollector<'a> {
             static_extra_scripts: &[&format!("source-script{}", self.scx.resource_suffix)],
         };
         let v = layout::render(&self.scx.layout,
-                       &page, &(""), &Source(contents),
+                       &page, "", &Source(contents),
                        &self.scx.themes);
         self.scx.fs.write(&cur, v.as_bytes())?;
         self.scx.local_sources.insert(p.clone(), href);