From 1c5547970a09791756169d006c40a38496912ee1 Mon Sep 17 00:00:00 2001 From: Jakob Stoklund Olesen Date: Sat, 10 Sep 2016 12:33:58 -0700 Subject: [PATCH] Idiomatic impl of unordered_begin. --- cranelift/src/libfilecheck/checker.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/cranelift/src/libfilecheck/checker.rs b/cranelift/src/libfilecheck/checker.rs index eba5da78a7..6bb458b55e 100644 --- a/cranelift/src/libfilecheck/checker.rs +++ b/cranelift/src/libfilecheck/checker.rs @@ -302,13 +302,11 @@ impl<'a> State<'a> { // Get the beginning of the range in text to be matched by a `unordered:` or `not:` directive. // The unordered directive must match after the directives that define the variables used. fn unordered_begin(&self, pat: &Pattern) -> usize { - let mut from = self.last_ordered; - for part in pat.parts() { - if let Some(var) = part.ref_var() { - from = max(from, self.def_offset(var)); - } - } - from + pat.parts() + .iter() + .filter_map(|part| part.ref_var()) + .map(|var| self.def_offset(var)) + .fold(self.last_ordered, max) } // Get the range in text to be matched by a `unordered:` directive.