Open
Description
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)
Metadata
Metadata
Assignees
Labels
Area: Lints (warnings about flaws in source code) such as unused_mut.Area: Suggestions generated by the compiler applied by `cargo fix`Category: An issue proposing an enhancement or a PR with one.Lint: mismatched_lifetime_syntaxesRelevant to the compiler team, which will review and decide on the PR/issue.