diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs
index 7c1139d7135c..13a31c557021 100644
--- a/src/librustdoc/html/format.rs
+++ b/src/librustdoc/html/format.rs
@@ -192,9 +192,9 @@ impl<'a> fmt::Display for WhereClause<'a> {
clause.push_str(" where");
} else {
if end_newline {
- clause.push_str("where");
+ clause.push_str(" where");
} else {
- clause.push_str("where");
+ clause.push_str(" where");
}
}
for (i, pred) in gens.where_predicates.iter().enumerate() {
@@ -241,8 +241,11 @@ impl<'a> fmt::Display for WhereClause<'a> {
clause.push_str("");
let padding = repeat(" ").take(indent + 4).collect::();
clause = clause.replace("
", &format!("
{}", padding));
- clause.insert_str(0, &repeat(" ").take(indent).collect::());
- if !end_newline {
+ clause.insert_str(0, &repeat(" ").take(indent.saturating_sub(1))
+ .collect::());
+ if end_newline {
+ clause.push(' ');
+ } else {
clause.insert_str(0, "
");
}
}
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index b1ac6a5127f2..af2beacf58ac 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -2710,14 +2710,14 @@ fn render_struct(w: &mut fmt::Formatter, it: &clean::Item,
}
write!(w, ")")?;
if let Some(g) = g {
- write!(w, "{}", WhereClause { gens: g, indent: 0, end_newline: true })?
+ write!(w, "{}", WhereClause { gens: g, indent: 0, end_newline: false })?
}
write!(w, ";")?;
}
doctree::Unit => {
// Needed for PhantomData.
if let Some(g) = g {
- write!(w, "{}", WhereClause { gens: g, indent: 0, end_newline: true })?
+ write!(w, "{}", WhereClause { gens: g, indent: 0, end_newline: false })?
}
write!(w, ";")?;
}
diff --git a/src/test/rustdoc/impl-parts.rs b/src/test/rustdoc/impl-parts.rs
index 89c5e60e3431..48ef4b6be66d 100644
--- a/src/test/rustdoc/impl-parts.rs
+++ b/src/test/rustdoc/impl-parts.rs
@@ -17,7 +17,7 @@ impl AnOibit for .. {}
pub struct Foo { field: T }
// @has impl_parts/struct.Foo.html '//*[@class="impl"]//code' \
-// "impl !AnOibit for Foo where T: Sync"
+// "impl !AnOibit for Foo where T: Sync,"
// @has impl_parts/trait.AnOibit.html '//*[@class="item-list"]//code' \
-// "impl !AnOibit for Foo where T: Sync"
+// "impl !AnOibit for Foo where T: Sync,"
impl !AnOibit for Foo where T: Sync {}
diff --git a/src/test/rustdoc/issue-20727-4.rs b/src/test/rustdoc/issue-20727-4.rs
index 9ebd1c448eeb..960e40b07098 100644
--- a/src/test/rustdoc/issue-20727-4.rs
+++ b/src/test/rustdoc/issue-20727-4.rs
@@ -35,7 +35,7 @@ pub trait IndexMut: Index {
pub mod reexport {
// @has issue_20727_4/reexport/trait.Index.html
- // @has - '//*[@class="rust trait"]' 'trait Index where Idx: ?Sized {'
+ // @has - '//*[@class="rust trait"]' 'trait Index where Idx: ?Sized, {'
// @has - '//*[@class="rust trait"]' 'type Output: ?Sized'
// @has - '//*[@class="rust trait"]' \
// 'fn index(&self, index: Idx) -> &Self::Output'
@@ -43,7 +43,7 @@ pub mod reexport {
// @has issue_20727_4/reexport/trait.IndexMut.html
// @has - '//*[@class="rust trait"]' \
- // 'trait IndexMut: Index where Idx: ?Sized {'
+ // 'trait IndexMut: Index where Idx: ?Sized, {'
// @has - '//*[@class="rust trait"]' \
// 'fn index_mut(&mut self, index: Idx) -> &mut Self::Output;'
pub use issue_20727::IndexMut;
diff --git a/src/test/rustdoc/where.rs b/src/test/rustdoc/where.rs
index d8dc115abf91..e691f7c5bea0 100644
--- a/src/test/rustdoc/where.rs
+++ b/src/test/rustdoc/where.rs
@@ -44,5 +44,5 @@ pub enum Foxtrot { Foxtrot1(F) }
impl MyTrait for Foxtrot where F: MyTrait {}
// @has foo/type.Golf.html '//pre[@class="rust typedef"]' \
-// "type Golf where T: Clone = (T, T)"
+// "type Golf where T: Clone, = (T, T)"
pub type Golf where T: Clone = (T, T);