// check-pass // compile-flags: -Ztrait-solver=next fn foo<'a: 'a>(x: &'a Vec) -> impl Sized { () } fn main() { // in NLL, we want to make sure that the `'a` subst of `foo` does not get // related between `x` and the RHS of the assignment. That would require // that the temp is live for the lifetime of the variable `x`, which of // course is not necessary since `'a` is not captured by the RPIT. let x = foo(&Vec::new()); }