Skip to content

Use inner iterator may_have_side_effect for Cloned - #56538

Merged
bors merged 2 commits into
rust-lang:masterfrom
sugar700:patch-13
Dec 6, 2018
Merged

Use inner iterator may_have_side_effect for Cloned#56538
bors merged 2 commits into
rust-lang:masterfrom
sugar700:patch-13

Conversation

@sugar700

@sugar700sugar700 commented Dec 5, 2018

Copy link
Copy Markdown
Contributor

Previous implementation wasn't correct, as an inner iterator could have had side effects. Noticed by @bluss in #56534.

@rust-highfive

Copy link
Copy Markdown
Contributor

r? @alexcrichton

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfiverust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Dec 5, 2018
Comment threadsrc/libcore/iter/mod.rs Outdated
@sugar700

Copy link
Copy Markdown
ContributorAuthor

Oops, modified this in wrong place, let me fix that.

Previous implementation wasn't correct, as an inner iterator
could have had side effects.
@bluss

bluss commented Dec 5, 2018

Copy link
Copy Markdown
Contributor

Playground snippet to show the bug, that it silences sideeffects in map.

https://play.rust-lang.org/?version=stable&mode=debug&edition=2015&gist=9d308367741f5ca7cb80ee50ae9a8168

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.

@sugar700

Copy link
Copy Markdown
ContributorAuthor

I will try adding a test case for this bug when I get home.

@bluss

bluss commented Dec 5, 2018

Copy link
Copy Markdown
Contributor

@bors r+ rollup

thanks!

@bors

bors commented Dec 5, 2018

Copy link
Copy Markdown
Collaborator

📌 Commit a964307 has been approved by bluss

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 5, 2018
emilyalbini added a commit to emilyalbini/rust that referenced this pull request Dec 5, 2018
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.
emilyalbini added a commit to emilyalbini/rust that referenced this pull request Dec 5, 2018
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.
bors added a commit that referenced this pull request Dec 5, 2018
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
@bors
bors merged commit a964307 into rust-lang:masterDec 6, 2018
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@sugar700@rust-highfive@bluss@bors@alexcrichton