Skip to content

Make Peekable remember peeking a None #37834

New issue

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

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

Already on GitHub? # to your account

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
Contributor

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
Collaborator

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
Collaborator

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
# for free to join this conversation on GitHub. Already have an account? # 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