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

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

22 lines
500 B
Rust
Raw Normal View History

2023-09-08 03:00:59 +00:00
#![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]
2023-09-08 03:00:59 +00:00
// captures both T and 'a invariantly
()
}
fn foo2<'a, T: Bar<'a>>() -> impl Into<T::Assoc> + 'a {
//~^ ERROR ['a: o, T: o, 'a: o]
2023-09-08 03:00:59 +00:00
// 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() {}