mirror of https://github.com/rust-lang/rust
f75a1954eb
Suggest `impl Trait` for References to Bare Trait in Function Header Fixes #125139 This PR suggests `impl Trait` when `&Trait` is found as a function parameter type or return type. This makes use of existing diagnostics by adding `peel_refs()` when checking for type equality. Additionaly, it makes a few other improvements: 1. Checks if functions inside impl blocks have bare trait in their headers. 2. Introduces a trait `NextLifetimeParamName` similar to the existing `NextTypeParamName` for suggesting a lifetime name. Also, abstracts out the common logic between the two trait impls. ### Related Issues I ran into a bunch of related diagnostic issues but couldn't fix them within the scope of this PR. So, I have created the following issues: 1. [Misleading Suggestion when Returning a Reference to a Bare Trait from a Function](https://github.com/rust-lang/rust/issues/127689) 2. [Verbose Error When a Function Takes a Bare Trait as Parameter](https://github.com/rust-lang/rust/issues/127690) 3. [Incorrect Suggestion when Returning a Bare Trait from a Function](https://github.com/rust-lang/rust/issues/127691) r? ```@estebank``` since you implemented #119148 |
||
---|---|---|
.. | ||
dyn-2015-edition-keyword-ident-lint.fixed | ||
dyn-2015-edition-keyword-ident-lint.rs | ||
dyn-2015-edition-keyword-ident-lint.stderr | ||
dyn-2015-idents-in-decl-macros-unlinted.rs | ||
dyn-2015-idents-in-macros-unlinted.rs | ||
dyn-2015-no-warnings-without-lints.rs | ||
dyn-2018-edition-lint.rs | ||
dyn-2018-edition-lint.stderr | ||
dyn-2021-edition-error.rs | ||
dyn-2021-edition-error.stderr | ||
dyn-angle-brackets.fixed | ||
dyn-angle-brackets.rs | ||
dyn-angle-brackets.stderr | ||
issue-5153.rs | ||
issue-5153.stderr | ||
issue-56327-dyn-trait-in-macro-is-okay.rs | ||
suggest-dyn-on-bare-trait-in-pat.rs | ||
suggest-dyn-on-bare-trait-in-pat.stderr |