From 7f76f3c53264ed92b7a3ee00aa4fbdf44b86ff77 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Wed, 5 Jul 2017 06:08:29 -0700 Subject: [PATCH] servo: Merge #17605 - Replace remaining usage of deprecated Range::step_by (from servo:maybereverse); r=nox MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … which is being removed in rust-lang/rust#43012 Source-Repo: https://github.com/servo/servo Source-Revision: 5baea7b73223283b551cf378bb714491a2383c28 --- servo/components/layout/inline.rs | 26 +++++++++++++++++++++----- servo/components/layout/lib.rs | 1 - servo/components/selectors/parser.rs | 1 - 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/servo/components/layout/inline.rs b/servo/components/layout/inline.rs index 1ce18b562bbb6..60edeedff4b1c 100644 --- a/servo/components/layout/inline.rs +++ b/servo/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 { + iter: I, + reverse: bool, + } + + impl Iterator for MaybeReverse { + type Item = I::Item; + + fn next(&mut self) -> Option { + 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/servo/components/layout/lib.rs b/servo/components/layout/lib.rs index 0b9615509747f..af108249c42ac 100644 --- a/servo/components/layout/lib.rs +++ b/servo/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; diff --git a/servo/components/selectors/parser.rs b/servo/components/selectors/parser.rs index c73ac10f44203..f341911a33cb7 100644 --- a/servo/components/selectors/parser.rs +++ b/servo/components/selectors/parser.rs @@ -1572,7 +1572,6 @@ pub mod tests { use builder::HAS_PSEUDO_BIT; use cssparser::{Parser as CssParser, ToCss, serialize_identifier, ParserInput}; use parser; - use std::borrow::Cow; use std::collections::HashMap; use std::fmt; use super::*;