-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Use inner iterator may_have_side_effect for Cloned #56538
Conversation
(rust_highfive has picked a reviewer for you, use r? to override) |
Oops, modified this in wrong place, let me fix that. |
4996459
to
ed72157
Compare
Previous implementation wasn't correct, as an inner iterator could have had side effects.
ed72157
to
3eddc74
Compare
Playground snippet to show the bug, that it silences sideeffects in map. I think we want to fix this because we don't want our use of specialization to be user-visible or affect sideeffectfulness of iterations. |
I will try adding a test case for this bug when I get home. |
@bors r+ rollup thanks! |
📌 Commit a964307 has been approved by |
Use inner iterator may_have_side_effect for Cloned Previous implementation wasn't correct, as an inner iterator could have had side effects. Noticed by @bluss in rust-lang#56534.
Use inner iterator may_have_side_effect for Cloned Previous implementation wasn't correct, as an inner iterator could have had side effects. Noticed by @bluss in rust-lang#56534.
Rollup of 15 pull requests Successful merges: - #51753 (Document `From` implementations) - #55563 (Improve no result found sentence in doc search) - #55987 (Add Weak.ptr_eq) - #56119 (Utilize `?` instead of `return None`.) - #56372 (Refer to the second borrow as the "second borrow" in E0501.rs) - #56388 (More MIR borrow check cleanup) - #56424 (Mention raw-ident syntax) - #56452 (Remove redundant clones) - #56456 (Handle existential types in dead code analysis) - #56466 (data_structures: remove tuple_slice) - #56476 (Fix invalid line number match) - #56497 (cleanup: remove static lifetimes from consts in libstd) - #56498 (Fix line numbers display) - #56523 (Added a bare-bones eslint config (removing jslint)) - #56538 (Use inner iterator may_have_side_effect for Cloned) Failed merges: r? @ghost
Previous implementation wasn't correct, as an inner iterator could have had side effects. Noticed by @bluss in #56534.