struct Wrapper(T); trait Trait { fn method(&self) {} } impl<'a, T> Trait for Wrapper<&'a T> where Wrapper: Trait {} fn get() -> T { unimplemented!() } fn main() { let thing = get::();//~ERROR cannot find type `Thing` in this scope [E0412] let wrapper = Wrapper(thing); Trait::method(&wrapper); }