// check-pass #![allow(dead_code)] // pretty-expanded FIXME #23616 trait Trait { fn method(self) -> isize; } struct Wrapper { field: T } impl<'a, T> Trait for &'a Wrapper where &'a T: Trait { fn method(self) -> isize { let r: &'a T = &self.field; Trait::method(r); // these should both work r.method() } } fn main() {}