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

Make Peekable remember peeking a None #37834

Merged
merged 1 commit into from
Nov 22, 2016
Merged

Conversation

bluss
Copy link
Member

@bluss bluss commented Nov 17, 2016

Peekable should remember if a None has been seen in the .peek() method.
It ensures that .peek(); .peek(); or .peek(); .next(); only advances the
underlying iterator at most once. This does not by itself make the iterator
fused.

Thanks to @s3bk for the code in fn peek() itself.

Fixes #37784

Peekable must remember if a None has been seen in the `.peek()` method.
It ensures that `.peek(); .peek();` or `.peek(); .next();` only advances the
underlying iterator at most once. This does not by itself make the iterator
fused.
@rust-highfive
Copy link
Collaborator

r? @aturon

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

@alexcrichton alexcrichton added the T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. label Nov 17, 2016
@bluss bluss changed the title Peekable should remember peeking a None Make Peekable remember peeking a None Nov 17, 2016
@aturon
Copy link
Member

aturon commented Nov 17, 2016

cc @rust-lang/libs I consider this a bug-fix, but it does involve changing the behavior of a stable API.

@sfackler
Copy link
Member

👍

Would be cool to specialize for Fuse inner iterators, but that can happen in a follow up obviously.

@alexcrichton
Copy link
Member

I'm 👍 for this change, sounds good to me!

@BurntSushi
Copy link
Member

@bors: r+

@bors
Copy link
Contributor

bors commented Nov 21, 2016

📌 Commit 6c2a456 has been approved by BurntSushi

@bluss bluss added the relnotes Marks issues that should be documented in the release notes of the next release. label Nov 21, 2016
@bors
Copy link
Contributor

bors commented Nov 22, 2016

⌛ Testing commit 6c2a456 with merge 0f7c75b...

bors added a commit that referenced this pull request Nov 22, 2016
Make Peekable remember peeking a None

Peekable should remember if a None has been seen in the `.peek()` method.
It ensures that `.peek(); .peek();` or `.peek(); .next();` only advances the
underlying iterator at most once. This does not by itself make the iterator
fused.

Thanks to @s3bk for the code in `fn peek()` itself.

Fixes #37784
@bors bors merged commit 6c2a456 into rust-lang:master Nov 22, 2016
@bluss bluss deleted the peek-none branch November 23, 2016 01:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
relnotes Marks issues that should be documented in the release notes of the next release. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants