rust/tests/ui/impl-trait/in-trait/opaque-variances.rs

15 lines
453 B
Rust

//@ check-pass
//@ compile-flags: -Znext-solver
fn foo<'a: 'a>(x: &'a Vec<i32>) -> 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());
}