diff options
| author | Ulrik Sverdrup <root@localhost> | 2015-02-08 00:17:04 +0100 |
|---|---|---|
| committer | Ulrik Sverdrup <root@localhost> | 2015-02-08 00:17:04 +0100 |
| commit | 4f61e160326676cdcce94b9d5bca7d88c5f40ee9 (patch) | |
| tree | 3445e5ff2b784552c7966cba0a91b14a95f47cfb /src/rustllvm/ExecutionEngineWrapper.cpp | |
| parent | ce5aad2f107e79c5f1baab40aff35b7899322d94 (diff) | |
| download | rust-4f61e160326676cdcce94b9d5bca7d88c5f40ee9.tar.gz rust-4f61e160326676cdcce94b9d5bca7d88c5f40ee9.zip | |
Fix std::ops::Range size_hint and ExactSizeIterator impls
When self.start > self.end, these iterators simply return None, so we adjust the size_hint to just return zero in this case. Certain optimizations can be implemented in and outside libstd if we know we can trust the size_hint for all inputs to for example Range<usize>. This corrects the ExactSizeIterator implementations, which IMO were unsound and incorrect previously, since they allowed a range like (2..1) to return a size_hint of -1us in when debug assertions are turned off.
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
