aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/style/errors.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/style/errors.rs')
-rw-r--r--src/components/style/errors.rs12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/components/style/errors.rs b/src/components/style/errors.rs
index fa97d5229c9..51729f6def7 100644
--- a/src/components/style/errors.rs
+++ b/src/components/style/errors.rs
@@ -10,14 +10,16 @@ pub struct ErrorLoggerIterator<I>(I);
impl<T, I: Iterator<Result<T, SyntaxError>>> Iterator<T> for ErrorLoggerIterator<I> {
fn next(&mut self) -> Option<T> {
- for result in **self {
- match result {
- Ok(v) => return Some(v),
- Err(error) => log_css_error(error.location, format!("{:?}", error.reason))
+ let ErrorLoggerIterator(ref mut this) = *self;
+ while true {
+ match this.next() {
+ Some(Ok(v)) => return Some(v),
+ Some(Err(error)) => log_css_error(error.location, format!("{:?}", error.reason)),
+ None => return None,
}
}
None
- }
+ }
}