]> git.lizzy.rs Git - rust.git/commitdiff
auto merge of #7684 : pnkfelix/rust/fsk-invert-range-rev-halfclosedness-issue5270...
authorbors <bors@rust-lang.org>
Tue, 16 Jul 2013 21:37:34 +0000 (14:37 -0700)
committerbors <bors@rust-lang.org>
Tue, 16 Jul 2013 21:37:34 +0000 (14:37 -0700)
Changes int/uint range_rev to iterate over range `(hi,lo]` instead of `[hi,lo)`.

Fix #5270.

Also:
* Adds unit tests for int/uint range functions
* Updates the uses of `range_rev` to account for the new semantics.  (Note that pretty much all of the updates there were strict improvements to the code in question; yay!)
* Exposes new function, `range_step_inclusive`, which does the range `[hi,lo]`, (at least when `hi-lo` is a multiple of the `step` parameter).
* Special-cases when `|step| == 1` removing unnecessary bounds-check.  (I did not check whether LLVM was already performing this optimization; I figure it would be a net win to not leave that analysis to the compiler.  If reviewer objects, I can easily remove that from the refactored code.)

(This pull request is a rebased version of PR #7524, which went stale due to recent unrelated changes to num libraries.)

1  2 
src/libextra/smallintmap.rs
src/libstd/trie.rs

Simple merge
Simple merge