Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider side effects when rewriting iterator behaviors #14490

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

profetia
Copy link
Contributor

Closes #9191
Closes #14444
Closes #8055

Adds a new helper to partly check for side effects by recursively checking if the iterator type contains closures with mutable captures.

changelog: [double_ended_iterator_last] fix FP when iter has side effects
changelog: [needless_collect] fix lint not consider side effects

@rustbot
Copy link
Collaborator

rustbot commented Mar 28, 2025

r? @Jarcho

rustbot has assigned @Jarcho.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties label Mar 28, 2025
Copy link
Contributor

@Jarcho Jarcho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see why this needs to be limited to checking only closure captures. Any iterator that contains a mutable reference has the same issue.

I think any iterator type containing one of the following would need to not lint:

  • A mutable reference/pointer
  • A reference/pointer to a non-Freeze type
  • A PhantomData type containing any of the previous.

@profetia profetia force-pushed the issue14444 branch 2 times, most recently from 92e35bf to 4a54775 Compare April 1, 2025 12:17
@profetia
Copy link
Contributor Author

profetia commented Apr 1, 2025

Updated. Now these will also be covered.

@profetia profetia requested a review from Jarcho April 1, 2025 12:20
@profetia
Copy link
Contributor Author

profetia commented Apr 1, 2025

This CI failure does not seem to be my problem. Any ideas?

@samueltardieu
Copy link
Contributor

samueltardieu commented Apr 1, 2025

This CI failure does not seem to be my problem. Any ideas?

I've restarted it to see if it's intermittent (we'll have to fix it anyway) or not. For reference, here is the failing version.

Edit: this does not look like it is intermittent.

@profetia
Copy link
Contributor Author

profetia commented Apr 2, 2025

Thanks to #14514, the CI is working now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties
Projects
None yet
4 participants