mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 01:04:03 +00:00
Rollup merge of #95813 - Urgau:rustdoc-where-clause-space, r=GuillaumeGomez
Remove extra space before a where clause Remove extra space before where clause in the generated documentation. The fix is to move the space before the break-line so that it doesn't appear visually but is still here. Removing it completely would create things like this `impl<D> Delta<D>where D: MyTrait` (missing a space before the where) which I don't think we want. Added two regression test, first one test that the `<br>` is after the space and the second check that the `<br>` is before the spaces. Before: ![image](https://user-images.githubusercontent.com/3616612/162475212-d4bb6727-ed66-4a55-a4a2-4f55189bf8bd.png) After: ![image](https://user-images.githubusercontent.com/3616612/162475467-508fd082-60a7-4a8c-b693-8b188e8843e6.png) r? ``@GuillaumeGomez``
This commit is contained in:
commit
a0ba15bfab
@ -370,7 +370,8 @@ crate fn print_where_clause<'a, 'tcx: 'a>(
|
||||
clause = clause.replace("<br>", &format!("<br>{}", padding));
|
||||
clause.insert_str(0, &" ".repeat(indent.saturating_sub(1)));
|
||||
if !end_newline {
|
||||
clause.insert_str(0, "<br>");
|
||||
// we insert the <br> after a single space but before multiple spaces at the start
|
||||
clause.insert_str(if indent == 0 { 1 } else { 0 }, "<br>");
|
||||
}
|
||||
}
|
||||
write!(f, "{}", clause)
|
||||
|
1
src/test/rustdoc/where.SWhere_Simd_item-decl.html
Normal file
1
src/test/rustdoc/where.SWhere_Simd_item-decl.html
Normal file
@ -0,0 +1 @@
|
||||
<div class="docblock item-decl"><pre class="rust struct"><code>pub struct Simd<T>(_) <br /><span class="where">where<br />    T: <a class="trait" href="trait.MyTrait.html" title="trait foo::MyTrait">MyTrait</a></span>;</code></pre></div>
|
3
src/test/rustdoc/where.SWhere_TraitWhere_item-decl.html
Normal file
3
src/test/rustdoc/where.SWhere_TraitWhere_item-decl.html
Normal file
@ -0,0 +1,3 @@
|
||||
<div class="docblock item-decl"><pre class="rust trait"><code>pub trait TraitWhere {
|
||||
type <a href="#associatedtype.Item" class="associatedtype">Item</a><'a><br />    <span class="where">where<br />        Self: 'a</span>;
|
||||
}</code></pre></div>
|
@ -1,3 +1,4 @@
|
||||
#![feature(generic_associated_types)]
|
||||
#![crate_name = "foo"]
|
||||
|
||||
pub trait MyTrait { fn dummy(&self) { } }
|
||||
@ -19,6 +20,18 @@ impl<D> Delta<D> where D: MyTrait {
|
||||
|
||||
pub struct Echo<E>(E);
|
||||
|
||||
// @has 'foo/struct.Simd.html'
|
||||
// @snapshot SWhere_Simd_item-decl - '//div[@class="docblock item-decl"]'
|
||||
pub struct Simd<T>([T; 1])
|
||||
where
|
||||
T: MyTrait;
|
||||
|
||||
// @has 'foo/trait.TraitWhere.html'
|
||||
// @snapshot SWhere_TraitWhere_item-decl - '//div[@class="docblock item-decl"]'
|
||||
pub trait TraitWhere {
|
||||
type Item<'a> where Self: 'a;
|
||||
}
|
||||
|
||||
// @has foo/struct.Echo.html '//*[@class="impl has-srclink"]//h3[@class="code-header in-band"]' \
|
||||
// "impl<E> MyTrait for Echo<E> where E: MyTrait"
|
||||
// @has foo/trait.MyTrait.html '//*[@id="implementors-list"]//h3[@class="code-header in-band"]' \
|
||||
|
Loading…
Reference in New Issue
Block a user