diff options
Diffstat (limited to 'src/components/style/errors.rs')
-rw-r--r-- | src/components/style/errors.rs | 12 |
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 - } + } } |