// 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); | |
} |