1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
// This test ensures there is no whitespace before the first brace of
// trait, enum, struct and union items when they have a where clause.
#![crate_name = "foo"]
// @has 'foo/trait.ToOwned.html'
// @snapshot trait - '//*[@class="docblock item-decl"]'
pub trait ToOwned<T>
where T: Clone
{
type Owned;
fn to_owned(&self) -> Self::Owned;
fn whatever(&self) -> T;
}
// @has 'foo/trait.ToOwned2.html'
// @snapshot trait2 - '//*[@class="docblock item-decl"]'
// There should be a whitespace in this case!
pub trait ToOwned2<T: Clone> {
type Owned;
fn to_owned(&self) -> Self::Owned;
fn whatever(&self) -> T;
}
// @has 'foo/enum.Cow.html'
// @snapshot enum - '//*[@class="docblock item-decl"]'
pub enum Cow<'a, B: ?Sized + 'a>
where
B: ToOwned<Clone>,
{
Borrowed(&'a B),
Whatever(u32),
}
// @has 'foo/enum.Cow2.html'
// @snapshot enum2 - '//*[@class="docblock item-decl"]'
// There should be a whitespace in this case!
pub enum Cow2<'a, B: ?Sized + ToOwned<Clone> + 'a> {
Borrowed(&'a B),
Whatever(u32),
}
// @has 'foo/struct.Struct.html'
// @snapshot struct - '//*[@class="docblock item-decl"]'
pub struct Struct<'a, B: ?Sized + 'a>
where
B: ToOwned<Clone>,
{
pub a: &'a B,
pub b: u32,
}
// @has 'foo/struct.Struct2.html'
// @snapshot struct2 - '//*[@class="docblock item-decl"]'
// There should be a whitespace in this case!
pub struct Struct2<'a, B: ?Sized + ToOwned<Clone> + 'a> {
pub a: &'a B,
pub b: u32,
}
// @has 'foo/union.Union.html'
// @snapshot union - '//*[@class="docblock item-decl"]'
pub union Union<'a, B: ?Sized + 'a>
where
B: ToOwned<Clone>,
{
a: &'a B,
b: u32,
}
// @has 'foo/union.Union2.html'
// @snapshot union2 - '//*[@class="docblock item-decl"]'
// There should be a whitespace in this case!
pub union Union2<'a, B: ?Sized + ToOwned<Clone> + 'a> {
a: &'a B,
b: u32,
}