-
Notifications
You must be signed in to change notification settings - Fork 12.6k
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
Rollup of 5 pull requests #72659
Rollup of 5 pull requests #72659
Commits on May 24, 2020
-
Configuration menu - View commit details
-
Copy full SHA for cd5f228 - Browse repository at this point
Copy the full SHA cd5f228View commit details
Commits on May 25, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 68bab3e - Browse repository at this point
Copy the full SHA 68bab3eView commit details -
Fix typo in src/libcore/num/f32.rs
Co-authored-by: bluss <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b6eec22 - Browse repository at this point
Copy the full SHA b6eec22View commit details -
Fix typo in src/libcore/num/f32.rs
Co-authored-by: bluss <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d6650e0 - Browse repository at this point
Copy the full SHA d6650e0View commit details -
Configuration menu - View commit details
-
Copy full SHA for bd68de8 - Browse repository at this point
Copy the full SHA bd68de8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6973fd7 - Browse repository at this point
Copy the full SHA 6973fd7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8bc31ff - Browse repository at this point
Copy the full SHA 8bc31ffView commit details
Commits on May 26, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 66da735 - Browse repository at this point
Copy the full SHA 66da735View commit details -
Configuration menu - View commit details
-
Copy full SHA for 591584e - Browse repository at this point
Copy the full SHA 591584eView commit details
Commits on May 27, 2020
-
Prior art: `rust_analyzer` uses [`Parser::eat`](https://github.com/rust-analyzer/rust-analyzer/blob/50f4ae798b7c54d417ee88455b87fd0477473150/crates/ra_parser/src/parser.rs#L94), which is `next_if` specialized to `|y| next_if(|x| x == y)`. Basically every other parser I've run into in Rust has an equivalent of Parser::eat; see for example - [cranelift](https://github.com/bytecodealliance/wasmtime/blob/94190d57244b26baf36629c88104b0ba516510cf/cranelift/reader/src/parser.rs#L498) - [rcc](https://github.com/jyn514/rcc/blob/a8159c3904a0c950fbba817bf9109023fad69033/src/parse/mod.rs#L231) - [crunch](https://github.com/Kixiron/crunch-lang/blob/8521874fab8a7d62bfa7dea8bd1da94b63e31be8/crates/crunch-parser/src/parser/mod.rs#L213-L241)
Configuration menu - View commit details
-
Copy full SHA for 822ad87 - Browse repository at this point
Copy the full SHA 822ad87View commit details -
Configuration menu - View commit details
-
Copy full SHA for 42ddcd3 - Browse repository at this point
Copy the full SHA 42ddcd3View commit details -
Rollup merge of rust-lang#72310 - jyn514:peekable-next-if, r=dtolnay
Add Peekable::next_if Prior art: `rust_analyzer` uses [`Parser::eat`](https://github.com/rust-analyzer/rust-analyzer/blob/50f4ae798b7c54d417ee88455b87fd0477473150/crates/ra_parser/src/parser.rs#L94), which is `next_if` specialized to `|y| self.next_if(|x| x == y)`. Basically every other parser I've run into in Rust has an equivalent of `Parser::eat`; see for example - [cranelift](https://github.com/bytecodealliance/wasmtime/blob/94190d57244b26baf36629c88104b0ba516510cf/cranelift/reader/src/parser.rs#L498) - [rcc](https://github.com/jyn514/rcc/blob/a8159c3904a0c950fbba817bf9109023fad69033/src/parse/mod.rs#L231) - [crunch](https://github.com/Kixiron/crunch-lang/blob/8521874fab8a7d62bfa7dea8bd1da94b63e31be8/crates/crunch-parser/src/parser/mod.rs#L213-L241) Possible extensions: A specialization of `next_if` to using `Eq::eq`. The only difficulty here is the naming - maybe `next_if_eq`? Alternatives: - Instead of `func: impl FnOnce(&I::Item) -> bool`, use `func: impl FnOnce(I::Item) -> Option<I::Item>`. This has the advantage that `func` can move the value if necessary, but means that there is no guarantee `func` will return the same value it was given. - Instead of `fn next_if(...) -> Option<I::Item>`, use `fn next_if(...) -> bool`. This makes the common case of `iter.next_if(f).is_some()` easier, but makes the unusual case impossible. Bikeshedding on naming: - `next_if` could be renamed to `consume_if` (to match `eat`, but a little more formally) - `next_if_eq` could be renamed to `consume`. This is more concise but less self-explanatory if you haven't written a lot of parsers. - Both of the above, but with `consume` replaced by `eat`.
Configuration menu - View commit details
-
Copy full SHA for e200252 - Browse repository at this point
Copy the full SHA e200252View commit details -
Rollup merge of rust-lang#72547 - alex:patch-1, r=oli-obk
Added a codegen test for a recent optimization for overflow-checks=on Closes rust-lang#58692
Configuration menu - View commit details
-
Copy full SHA for e7d9396 - Browse repository at this point
Copy the full SHA e7d9396View commit details -
Rollup merge of rust-lang#72568 - golddranks:add_total_cmp_to_floats,…
… r=sfackler Implement total_cmp for f32, f64 # Overview * Implements method `total_cmp` on `f32` and `f64`. This method implements a float comparison that, unlike the standard `partial_cmp`, is total (defined on all values) in accordance to the IEEE 754 (rev 2008) §5.10 `totalOrder` predicate. * The method has an API similar to `cmp`: `pub fn total_cmp(&self, other: &Self) -> crate::cmp::Ordering { ... }`. * Implements tests. * Has documentation. # Justification for the API * Total ordering for `f32` and `f64` has been discussed many time before: * https://internals.rust-lang.org/t/pre-pre-rfc-range-restricting-wrappers-for-floating-point-types/6701 * rust-lang/rfcs#1249 * rust-lang#53938 * rust-lang#5585 * The lack of total ordering leads to frequent complaints, especially from people new to Rust. * This is an ergonomics issue that needs to be addressed. * However, the default behaviour of implementing only `PartialOrd` is intentional, as relaxing it might lead to correctness issues. * Most earlier implementations and discussions have been focusing on a wrapper type that implements trait `Ord`. Such a wrapper type is, however not easy to add because of the large API surface added. * As a minimal step that hopefully proves uncontroversial, we can implement a stand-alone method `total_cmp` on floating point types. * I expect adding such methods should be uncontroversial because... * Similar methods on `f32` and `f64` would be warranted even in case stdlib would provide a wrapper type that implements `Ord` some day. * It implements functionality that is standardised. (IEEE 754, 2008 rev. §5.10 Note, that the 2019 revision relaxes the ordering. The way we do ordering in this method conforms to the stricter 2008 standard.) * With stdlib APIs such as `slice::sort_by` and `slice::binary_search_by` that allow users to provide a custom ordering criterion, providing additional helper methods is a minimal way of adding ordering functionality. * Not also does it allow easily using aforementioned APIs, it also provides an easy and well-tested primitive for the users and library authors to implement an `Ord`-implementing wrapper, if needed.
Configuration menu - View commit details
-
Copy full SHA for 874a176 - Browse repository at this point
Copy the full SHA 874a176View commit details -
Rollup merge of rust-lang#72628 - MikailBag:array-default-tests, r=sh…
…epmaster Add tests for 'impl Default for [T; N]' Related: rust-lang#71690. This pull request adds two tests: - Even it T::default() panics, no leaks occur. - [T; 0] is Default even if T is not. I believe at some moment `Default` impl for arrays will be rewritten to use const generics instead of macros, and these tests will help to prevent behavior changes.
Configuration menu - View commit details
-
Copy full SHA for e4193fb - Browse repository at this point
Copy the full SHA e4193fbView commit details -
Rollup merge of rust-lang#72645 - ldm0:mailmap, r=nikomatsakis
Add myself to .mailmap
Configuration menu - View commit details
-
Copy full SHA for 4fff843 - Browse repository at this point
Copy the full SHA 4fff843View commit details