Fix manual_pop_if captured collection suggestions - #17793
Open
zjubiology wants to merge 1 commit into
Open
zjubiology wants to merge 1 commit into
zjubiology wants to merge 1 commit into
Conversation
Collaborator
|
Thanks for the pull request, and welcome! You should hear from one of our reviewers after this PR gets at least 2 reviews from the community. Please see the contribution instructions for more information. |
zjubiology
force-pushed
the
my_feature
branch
from
September 26, 2026 13:36
2667b81 to
2fffa4f
Compare
notriddle
reviewed
Sep 27, 2026
zjubiology
force-pushed
the
my_feature
branch
from
September 27, 2026 07:00
2fffa4f to
0ce67b8
Compare
notriddle
approved these changes
Sep 27, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
changelog: [manual_pop_if]: avoid invalid automatic suggestions when the predicate borrows the collection
manual_pop_if could emit a machine-applicable suggestion when the predicate also referenced the collection being popped from.
For example, rewriting:
to vec.pop_if(...) requires a mutable borrow of vec while the predicate closure also immutably borrows it, causing E0502.
Only provide an automatic suggestion when the collection is a simple local path and the predicate does not reference that local. Continue emitting the lint with a help message for captured or non-local collection expressions.
Also retain the parameter pattern and avoid automatic rewrites for non-default binding modes such as ref and mut, since the predicate parameter changes from &T to &mut T.
Add UI coverage for all supported condition forms, complex collection expressions, and non-default parameter bindings.