#![feature(generic_associated_types)]
#![crate_name = "foo"]
pub trait MyTrait { fn dummy(&self) { } }
// @has foo/struct.Alpha.html '//pre' "pub struct Alpha(_) where A: MyTrait"
pub struct Alpha(A) where A: MyTrait;
// @has foo/trait.Bravo.html '//pre' "pub trait Bravo where B: MyTrait"
pub trait Bravo where B: MyTrait { fn get(&self, B: B); }
// @has foo/fn.charlie.html '//pre' "pub fn charlie() where C: MyTrait"
pub fn charlie() where C: MyTrait {}
pub struct Delta(D);
// @has foo/struct.Delta.html '//*[@class="impl has-srclink"]//h3[@class="code-header in-band"]' \
// "impl Delta where D: MyTrait"
impl Delta where D: MyTrait {
pub fn delta() {}
}
pub struct Echo(E);
// @has 'foo/struct.Simd.html'
// @snapshot SWhere_Simd_item-decl - '//div[@class="docblock item-decl"]'
pub struct Simd([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 MyTrait for Echo where E: MyTrait"
// @has foo/trait.MyTrait.html '//*[@id="implementors-list"]//h3[@class="code-header in-band"]' \
// "impl MyTrait for Echo where E: MyTrait"
impl MyTrait for Echo where E: MyTrait {}
pub enum Foxtrot { Foxtrot1(F) }
// @has foo/enum.Foxtrot.html '//*[@class="impl has-srclink"]//h3[@class="code-header in-band"]' \
// "impl MyTrait for Foxtrot where F: MyTrait"
// @has foo/trait.MyTrait.html '//*[@id="implementors-list"]//h3[@class="code-header in-band"]' \
// "impl MyTrait for Foxtrot where F: MyTrait"
impl MyTrait for Foxtrot where F: MyTrait {}
// @has foo/type.Golf.html '//pre[@class="rust typedef"]' \
// "type Golf where T: Clone, = (T, T)"
pub type Golf where T: Clone = (T, T);