1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// run-pass trait Foo: Sized { fn foo(self) {} } trait Bar: Sized { fn bar(self) {} } struct S; impl<'l> Foo for &'l S {} impl<T: Foo> Bar for T {} fn main() { let s = S; s.foo(); (&s).bar(); s.bar(); }