// Regression test for #47470: cached results of projections were // causing region relations not to be enforced at all the places where // they have to be enforced. struct Foo<'a>(&'a ()); trait Bar { type Assoc; fn get(self) -> Self::Assoc; } impl<'a> Bar for Foo<'a> { type Assoc = &'a u32; fn get(self) -> Self::Assoc { let local = 42; &local //~ ERROR cannot return reference to local variable `local` } } fn main() { let f = Foo(&()).get(); println!("{}", f); }