diff options
| author | Scott McMurray <scottmcm@users.noreply.github.com> | 2018-02-07 11:11:54 -0800 |
|---|---|---|
| committer | Scott McMurray <scottmcm@users.noreply.github.com> | 2018-02-07 11:11:54 -0800 |
| commit | 27d4d51670710aa44a73baf04130bc262b8de244 (patch) | |
| tree | ce275ba2bd606e77c189c918ebfcffbaa2f7dfae /src/libcore/tests | |
| parent | 4f93357d3b8938dfe439329c43c1e4f919a70869 (diff) | |
| download | rust-27d4d51670710aa44a73baf04130bc262b8de244.tar.gz rust-27d4d51670710aa44a73baf04130bc262b8de244.zip | |
Simplify RangeInclusive::next[_back]
`match`ing on an `Option<Ordering>` seems cause some confusion for LLVM; switching to just using comparison operators removes a few jumps from the simple `for` loops I was trying.
Diffstat (limited to 'src/libcore/tests')
| -rw-r--r-- | src/libcore/tests/iter.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libcore/tests/iter.rs b/src/libcore/tests/iter.rs index dc866d180bf..c742a1d8048 100644 --- a/src/libcore/tests/iter.rs +++ b/src/libcore/tests/iter.rs @@ -1333,6 +1333,18 @@ fn test_range_inclusive_exhaustion() { assert_eq!(r, 1..=0); let mut r = 10..=12; + assert_eq!(r.next(), Some(10)); + assert_eq!(r.next(), Some(11)); + assert_eq!(r.next(), Some(12)); + assert_eq!(r, 1..=0); + + let mut r = 10..=12; + assert_eq!(r.next_back(), Some(12)); + assert_eq!(r.next_back(), Some(11)); + assert_eq!(r.next_back(), Some(10)); + assert_eq!(r, 1..=0); + + let mut r = 10..=12; assert_eq!(r.nth(2), Some(12)); assert_eq!(r, 1..=0); @@ -1340,6 +1352,13 @@ fn test_range_inclusive_exhaustion() { assert_eq!(r.nth(5), None); assert_eq!(r, 1..=0); + let mut r = 100..=10; + assert_eq!(r.next(), None); + assert_eq!(r, 100..=10); + + let mut r = 100..=10; + assert_eq!(r.next_back(), None); + assert_eq!(r, 100..=10); } #[test] |
