24 lines
305 B
Rust
24 lines
305 B
Rust
//@ run-pass
|
|
|
|
trait Foo<'a> {
|
|
fn xyz(self);
|
|
}
|
|
impl<'a, T> Foo<'a> for T where 'static: 'a {
|
|
fn xyz(self) {}
|
|
}
|
|
|
|
trait Bar {
|
|
fn uvw(self);
|
|
}
|
|
impl<T> Bar for T where for<'a> T: Foo<'a> {
|
|
fn uvw(self) { self.xyz(); }
|
|
}
|
|
|
|
fn foo<T>(t: T) where T: Bar {
|
|
t.uvw();
|
|
}
|
|
|
|
fn main() {
|
|
foo(0);
|
|
}
|