A manual implementation of a trait for its own DST is currently legal: ``` rust trait Foo { fn gen<A>(&self) {} } impl<'a> Foo for Foo+'a {} fn main() {} ``` but shouldn't be. An object-safe `Foo` gives an ICE #20939, but should also be plain illegal.