rust/tests/ui/impl-trait/capture-lifetime-not-in-hir.rs

22 lines
500 B
Rust

#![feature(rustc_attrs)]
#![rustc_variance_of_opaques]
trait Bar<'a> {
type Assoc: From<()>;
}
fn foo<'a, T: Bar<'a>>() -> impl Into<T::Assoc> {
//~^ ERROR ['a: o, T: o]
// captures both T and 'a invariantly
()
}
fn foo2<'a, T: Bar<'a>>() -> impl Into<T::Assoc> + 'a {
//~^ ERROR ['a: o, T: o, 'a: o]
// captures both T and 'a invariantly, and also duplicates `'a`
// i.e. the opaque looks like `impl Into<<T as Bar<'a>>::Assoc> + 'a_duplicated`
()
}
fn main() {}