2022-06-19 09:38:10 -05:00
|
|
|
// 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"]
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has 'foo/trait.ToOwned.html'
|
|
|
|
//@ snapshot trait - '//*[@class="rust item-decl"]'
|
2022-06-19 09:38:10 -05:00
|
|
|
pub trait ToOwned<T>
|
2023-10-31 08:58:03 -05:00
|
|
|
where
|
|
|
|
T: Clone,
|
2022-06-19 09:38:10 -05:00
|
|
|
{
|
|
|
|
type Owned;
|
|
|
|
fn to_owned(&self) -> Self::Owned;
|
|
|
|
fn whatever(&self) -> T;
|
|
|
|
}
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has 'foo/trait.ToOwned2.html'
|
|
|
|
//@ snapshot trait2 - '//*[@class="rust item-decl"]'
|
2022-06-19 09:38:10 -05:00
|
|
|
// There should be a whitespace before `{` in this case!
|
|
|
|
pub trait ToOwned2<T: Clone> {
|
|
|
|
type Owned;
|
|
|
|
fn to_owned(&self) -> Self::Owned;
|
|
|
|
fn whatever(&self) -> T;
|
|
|
|
}
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has 'foo/enum.Cow.html'
|
|
|
|
//@ snapshot enum - '//*[@class="rust item-decl"]'
|
2022-06-19 09:38:10 -05:00
|
|
|
pub enum Cow<'a, B: ?Sized + 'a>
|
|
|
|
where
|
2023-10-31 08:58:03 -05:00
|
|
|
B: ToOwned<()>,
|
2022-06-19 09:38:10 -05:00
|
|
|
{
|
|
|
|
Borrowed(&'a B),
|
|
|
|
Whatever(u32),
|
|
|
|
}
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has 'foo/enum.Cow2.html'
|
|
|
|
//@ snapshot enum2 - '//*[@class="rust item-decl"]'
|
2022-06-19 09:38:10 -05:00
|
|
|
// There should be a whitespace before `{` in this case!
|
2023-10-31 08:58:03 -05:00
|
|
|
pub enum Cow2<'a, B: ?Sized + ToOwned<()> + 'a> {
|
2022-06-19 09:38:10 -05:00
|
|
|
Borrowed(&'a B),
|
|
|
|
Whatever(u32),
|
|
|
|
}
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has 'foo/struct.Struct.html'
|
|
|
|
//@ snapshot struct - '//*[@class="rust item-decl"]'
|
2022-06-19 09:38:10 -05:00
|
|
|
pub struct Struct<'a, B: ?Sized + 'a>
|
|
|
|
where
|
2023-10-31 08:58:03 -05:00
|
|
|
B: ToOwned<()>,
|
2022-06-19 09:38:10 -05:00
|
|
|
{
|
|
|
|
pub a: &'a B,
|
|
|
|
pub b: u32,
|
|
|
|
}
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has 'foo/struct.Struct2.html'
|
|
|
|
//@ snapshot struct2 - '//*[@class="rust item-decl"]'
|
2022-06-19 09:38:10 -05:00
|
|
|
// There should be a whitespace before `{` in this case!
|
2023-10-31 08:58:03 -05:00
|
|
|
pub struct Struct2<'a, B: ?Sized + ToOwned<()> + 'a> {
|
2022-06-19 09:38:10 -05:00
|
|
|
pub a: &'a B,
|
|
|
|
pub b: u32,
|
|
|
|
}
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has 'foo/union.Union.html'
|
|
|
|
//@ snapshot union - '//*[@class="rust item-decl"]'
|
2022-06-19 09:38:10 -05:00
|
|
|
pub union Union<'a, B: ?Sized + 'a>
|
|
|
|
where
|
2023-10-31 08:58:03 -05:00
|
|
|
B: ToOwned<()>,
|
2022-06-19 09:38:10 -05:00
|
|
|
{
|
|
|
|
a: &'a B,
|
|
|
|
b: u32,
|
|
|
|
}
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has 'foo/union.Union2.html'
|
|
|
|
//@ snapshot union2 - '//*[@class="rust item-decl"]'
|
2022-06-19 09:38:10 -05:00
|
|
|
// There should be a whitespace before `{` in this case!
|
2023-10-31 08:58:03 -05:00
|
|
|
pub union Union2<'a, B: ?Sized + ToOwned<()> + 'a> {
|
2022-06-19 09:38:10 -05:00
|
|
|
a: &'a B,
|
|
|
|
b: u32,
|
|
|
|
}
|