Replace remaining usage of deprecated Range::step_by

… which is being removed in https://github.com/rust-lang/rust/pull/43012
This commit is contained in:
Simon Sapin 2017-07-05 13:54:40 +02:00
parent 42e551f606
commit 86293c3b39
2 changed files with 21 additions and 6 deletions

View file

@ -962,13 +962,29 @@ impl InlineFlow {
Some(ref runs) => runs[run_count - run_idx - 1], // reverse order for RTL runs Some(ref runs) => runs[run_count - run_idx - 1], // reverse order for RTL runs
None => (line.range, bidi::Level::ltr()) None => (line.range, bidi::Level::ltr())
}; };
struct MaybeReverse<I> {
iter: I,
reverse: bool,
}
impl<I: DoubleEndedIterator> Iterator for MaybeReverse<I> {
type Item = I::Item;
fn next(&mut self) -> Option<I::Item> {
if self.reverse {
self.iter.next_back()
} else {
self.iter.next()
}
}
}
// If the bidi embedding direction is opposite the layout direction, lay out this // If the bidi embedding direction is opposite the layout direction, lay out this
// run in reverse order. // run in reverse order.
let reverse = level.is_ltr() != is_ltr; let fragment_indices = MaybeReverse {
let fragment_indices = if reverse { iter: range.begin().get()..range.end().get(),
(range.end().get() - 1..range.begin().get() - 1).step_by(-1) reverse: level.is_ltr() != is_ltr,
} else {
(range.begin().get()..range.end().get()).step_by(1)
}; };
for fragment_index in fragment_indices { for fragment_index in fragment_indices {

View file

@ -8,7 +8,6 @@
#![feature(conservative_impl_trait)] #![feature(conservative_impl_trait)]
#![feature(nonzero)] #![feature(nonzero)]
#![feature(raw)] #![feature(raw)]
#![feature(step_by)]
extern crate app_units; extern crate app_units;
extern crate atomic_refcell; extern crate atomic_refcell;