-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Stabilize iterator methods in 1.27 #49607
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
scottmcm
approved these changes
Apr 3, 2018
pietroalbini
added
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
relnotes
Marks issues that should be documented in the release notes of the next release.
labels
Apr 3, 2018
📌 Commit 9db63bb has been approved by |
bors
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
Apr 3, 2018
kennytm
added a commit
to kennytm/rust
that referenced
this pull request
Apr 4, 2018
…chton Stabilize iterator methods in 1.27 - Closes rust-lang#39480, feature `iter_rfind` - `DoubleEndedIterator::rfind` - Closes rust-lang#44705, feature `iter_rfold` - `DoubleEndedIterator::rfold` - Closes rust-lang#45594, feature `iterator_try_fold` - `Iterator::try_fold` - `Iterator::try_for_each` - `DoubleEndedIterator::try_rfold`
bors
added a commit
that referenced
this pull request
Apr 4, 2018
Rollup of 25 pull requests Successful merges: - #49179 (Handle future deprecation annotations ) - #49512 (Add support for variant and types fields for intra links) - #49515 (fix targetted value background) - #49516 (Add missing anchor for union type fields) - #49532 (Add test for rustdoc ignore test) - #49533 (Add #[must_use] to a few standard library methods) - #49540 (Fix miri Discriminant() for non-ADT) - #49559 (Introduce Vec::resize_with method (see #41758)) - #49570 (avoid IdxSets containing garbage above the universe length) - #49577 (Stabilize String::replace_range) - #49599 (Fix typo) - #49603 (Fix url for intra link provided method) - #49607 (Stabilize iterator methods in 1.27) - #49609 (run-pass/attr-stmt-expr: expand test cases) - #49612 (Fix "since" version for getpid feature.) - #49618 (Fix build error when compiling libcore for 16bit targets) - #49619 (tweak core::fmt docs) - #49637 (Stabilize parent_id()) - #49639 (Update Cargo) - #49628 (Re-write the documentation index) - #49594 (Add some performance guidance to std::fs and std::io docs) - #49625 (miri: add public alloc_kind accessor) - #49634 (Add a test for the fix to issue #43058) - #49641 (Regression test for #46314) - #49547 (Unignore borrowck test) Failed merges:
4 tasks
bors bot
added a commit
to rayon-rs/rayon
that referenced
this pull request
Jun 27, 2018
563: [WIP] Add try_fold, try_for_each, try_reduce r=nikomatsakis a=cuviper There are six variations here, matching the existing non-try suite: - `try_fold` and `try_fold_with` - `try_for_each` and `try_for_each_with` - `try_reduce` and `try_reduce_with` All of them operate on `Try::Ok` values similar to the exiting non-try methods, and short-circuit early to return any `Try::Error` value seen. This `Try` is a pub-in-private clone of the unstable `std::ops::Try`, implemented for `Option<T>` and `Result<T, E>`. TODO and open questions: - [ ] Needs documentation, examples, and tests. - [x] Should we wait for `Iterator::try_fold` and `try_for_each` to reach rust stable? They were stabilized in rust-lang/rust#49607, but there's always a chance this could get backed out. - **Resolved**: they're stable in 1.27 - [x] Should we wait for stable `std::ops::Try`? We could just keep ours private for now, and change to publicly use the standard trait later (on sufficiently new rustc). - **Resolved**: keep our pub-in-private `Try` for now. - [x] Should `try_fold` and `try_fold_with` continue to short-circuit globally, or change to only a local check? - When I first implemented `try_reduce_with`, I use a `try_fold` + `try_reduce` combination, like `reduce_with`'s implementation, but I didn't like the idea of having double `full: AtomicBool` flags in use. - If `try_fold` only errors locally, then other threads can continue folding normally, and you can decide what to do with the error when you further reduce/collect/etc. e.g. A following `try_reduce` will still short-circuit globally. - **Resolved**: changed to just a local check. Closes #495. Co-authored-by: Josh Stone <cuviper@gmail.com>
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.
S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
iter_rfind
DoubleEndedIterator::rfind
iter_rfold
) #44705, featureiter_rfold
DoubleEndedIterator::rfold
iterator_try_fold
Iterator::try_fold
Iterator::try_for_each
DoubleEndedIterator::try_rfold