blob: dbd543930980b5292783120d146288473bc868b9 [file] [log] [blame]
pub trait Foo {
type Associated;
}
pub struct X;
pub struct Y;
impl Foo for X {
type Associated = ();
}
impl Foo for Y {
type Associated = ();
}
impl X {
pub fn returns_sized<'a>(&'a self) -> impl Foo<Associated=()> + 'a {
X
}
}
impl Y {
pub fn returns_unsized<'a>(&'a self) -> Box<impl ?Sized + Foo<Associated=()> + 'a> {
Box::new(X)
}
}