Fix elided lifetimes shown as '_ on async functions#80319
Fix elided lifetimes shown as '_ on async functions#80319bors merged 2 commits intorust-lang:masterfrom
'_ on async functions#80319Conversation
7862711 to
25b628b
Compare
src/test/rustdoc/async-fn.rs
Outdated
This comment has been minimized.
This comment has been minimized.
25b628b to
530c33c
Compare
| // Turning `fn f(&'_ self)` into `fn f(&self)` isn't the worst thing in the world, though; | ||
| // there's no case where it could cause the function to fail to compile. | ||
| let elided = | ||
| l.is_elided() || matches!(l.name, LifetimeName::Param(ParamName::Fresh(_))); |
There was a problem hiding this comment.
I'm surprised that there are two possible ways we need to handle, when is it one versus the other? (Which test cases fail without one of these?)
There was a problem hiding this comment.
Fresh params aren't considered elided in rustc itself: https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc_hir/hir.rs.html#130-143. Almost every test fails without this, the only thing GenericParam changes is removing the bogus fn f<'_>.
If you notice above, it was already checking is_elided, just not Fresh.
There was a problem hiding this comment.
Ah I see. That makes me wonder if we should push this change up to is_elided(), but that might have other side effects.
Darksonn
left a comment
There was a problem hiding this comment.
The test-cases look good, although I note that there are very few cases with &self or &mut self, which is where I typically see the issue.
5eda9c2 to
ceb66ad
Compare
|
@bors r+ |
|
📌 Commit ceb66ad has been approved by |
Rollup of 11 pull requests Successful merges: - rust-lang#79213 (Stabilize `core::slice::fill`) - rust-lang#79999 (Refactored verbose print into a function) - rust-lang#80160 (Implemented a compiler diagnostic for move async mistake) - rust-lang#80274 (Rename rustc_middle::lint::LintSource) - rust-lang#80280 (Add installation commands to `x` tool README) - rust-lang#80319 (Fix elided lifetimes shown as `'_` on async functions) - rust-lang#80327 (Updated the match with the matches macro) - rust-lang#80330 (Fix typo in simplify_try.rs) - rust-lang#80340 (Don't unnecessarily override attrs for Module) - rust-lang#80342 (Fix typo) - rust-lang#80352 (BTreeMap: make test cases more explicit on failure) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup

Closes #63037.
r? @tmandry on the implementation, @Darksonn on the test cases.