diff options
author | Simon Sapin <simon.sapin@exyr.org> | 2017-07-05 13:54:40 +0200 |
---|---|---|
committer | Simon Sapin <simon.sapin@exyr.org> | 2017-07-05 13:54:40 +0200 |
commit | 86293c3b398ed3ece5627b02942f8d2eee997e02 (patch) | |
tree | 03bc13b6c04b833f8bd1a2ce5d9cf6c640f4122f /components/layout | |
parent | 42e551f60614da58f47fd29cb095cd72733e38b8 (diff) | |
download | servo-86293c3b398ed3ece5627b02942f8d2eee997e02.tar.gz servo-86293c3b398ed3ece5627b02942f8d2eee997e02.zip |
Replace remaining usage of deprecated Range::step_by
… which is being removed in https://github.com/rust-lang/rust/pull/43012
Diffstat (limited to 'components/layout')
-rw-r--r-- | components/layout/inline.rs | 26 | ||||
-rw-r--r-- | components/layout/lib.rs | 1 |
2 files changed, 21 insertions, 6 deletions
diff --git a/components/layout/inline.rs b/components/layout/inline.rs index 1ce18b562bb..60edeedff4b 100644 --- a/components/layout/inline.rs +++ b/components/layout/inline.rs @@ -962,13 +962,29 @@ impl InlineFlow { Some(ref runs) => runs[run_count - run_idx - 1], // reverse order for RTL runs 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 // run in reverse order. - let reverse = level.is_ltr() != is_ltr; - let fragment_indices = if reverse { - (range.end().get() - 1..range.begin().get() - 1).step_by(-1) - } else { - (range.begin().get()..range.end().get()).step_by(1) + let fragment_indices = MaybeReverse { + iter: range.begin().get()..range.end().get(), + reverse: level.is_ltr() != is_ltr, }; for fragment_index in fragment_indices { diff --git a/components/layout/lib.rs b/components/layout/lib.rs index 0b961550974..af108249c42 100644 --- a/components/layout/lib.rs +++ b/components/layout/lib.rs @@ -8,7 +8,6 @@ #![feature(conservative_impl_trait)] #![feature(nonzero)] #![feature(raw)] -#![feature(step_by)] extern crate app_units; extern crate atomic_refcell; |