Suggest importable type that differs slightly#156239
Conversation
36cee45 to
a23f444
Compare
|
I see from the 247 failed tests that 1-edit difference is too big for small names. 'net' should probably NOT be suggested to replace 'new'... Edit: i have now switched to case insensitive match only. |
This comment has been minimized.
This comment has been minimized.
fdc8fcc to
2893b67
Compare
|
r? @TaKO8Ki rustbot has assigned @TaKO8Ki. Use Why was this reviewer chosen?The reviewer was selected based on:
|
This comment has been minimized.
This comment has been minimized.
|
upstream change #157991 contains commit cd2d10a and 4f6a600 from #157974 which do some weird file swapping instead of renamings that completely confuses and breaks my rebase attempts. If this is not a skill issue on my part, maybe avoiding this kind of file swapping and splitting this in multiple rename commits would help git not getting confused ? |
Co-authored-by: Chris Simpkins <git.simpkins@gmail.com>
adds a is_exact_match field to ImportSuggestion use is_exact_match field to customize help message suggest imports with different casing -only suggest modules if the following segment matches too
When a pattern has `..` and a matching binding, suggest replacing `..` with `binding, ..`
1bcb37c to
981c290
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
The job Click to see the possible cause of the failure (guessed by this bot) |
This PR proposes case insensitive import suggestions.
Previous discussion of this topic here: #72641 and in this PR: #72988
If that is still of interest, a discussion may be needed to limit or expand the included list.
I initially followed the suggestions in #72988.
The tests are based on the tests by @chrissimpkins in #72988.
I added a
is_exact_matchfield toImportSuggestionto eventually modify the suggestion text accordingly.Only when no other suggestion is made, do I check for case insensitive import suggestion.
for a more complex case:
SystemTimeexists in the stdlib, but I only suggest case insensitive import when nothing else is suggestedDuring this PR, I ended up adding two other things which could arguably be two separate PRs:
filtering out typos suggestions that do not have parameters when the typo has some
motivation: It suggested Clone (no parameter) for the std
cloned<(),()>test when I expectedCloned<(),()>to be suggested.when suggesting that a missing binding is available in a pattern but not used because behind a
.., suggest a MaybeIncorrect fix.motivation: this way, I can avoid looking for imports if there is a suggestion.
custom import message for case insensitive suggestion.
only suggest case insensitive when no other suggestion is made
check for enum variant match before suggesting an enum
check for enum variant parameter requirement before suggesting an enum
check with reviewers where to place the test, and whether to rename them
squash and split commits for a clean PR