3 #![feature(type_alias_impl_trait)]
9 fn foo(&self) -> impl Sized {}
13 let y = Foo { x: &mut x };
15 let _a = &x; // invalidate the `&'a mut`in `y`
16 let _b = z; // this should *not* check that `'a` in the type `Foo<'a>::foo::opaque` is live
25 type FooX<'a> = impl Sized;
27 fn foo(&self) -> FooX<'a> {}
32 let y = Foo { x: &mut x };
34 let _a = &x; // invalidate the `&'a mut`in `y`
35 let _b = z; // this should *not* check that `'a` in the type `Foo<'a>::foo::opaque` is live