Not a blocker, but just for our consideration (now or in the future), this ordering is going to suggest changing
fn f<'a>(_: &'a ()) -> &() { loop {} }
to this
fn f<'a>(_: &'a ()) -> &'a () { loop {} }
which then clippy is going to immediately lint on in favor of this:
fn f(_: &()) -> &() { loop {} }
In that case, it does seem like it would be better for rustc to suggest eliding the lifetime. Of course, the harder case looks like this:
fn f<'a>(&'a self, _: &()) -> &() { loop {} }
There, maybe we could still justify making the elision to
fn f(&self, _: &()) -> &() { loop {} }
since that is, after all, the language choice we made about how these elisions should work for methods, and probably if I were to annotate a lifetime here, I'd annotate the other one, but I could see the case for not removing the name here.
Originally posted by @traviscross in #138677 (comment)
Originally posted by @traviscross in #138677 (comment)