diff options
| -rw-r--r-- | src/libcore/option.rs | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/libcore/option.rs b/src/libcore/option.rs index 63c846b25ec..12e6e843056 100644 --- a/src/libcore/option.rs +++ b/src/libcore/option.rs @@ -634,16 +634,12 @@ impl<T> Option<T> { #[inline] #[unstable(feature = "option_filter", issue = "45860")] pub fn filter<P: FnOnce(&T) -> bool>(self, predicate: P) -> Self { - match self { - Some(x) => { - if predicate(&x) { - Some(x) - } else { - None - } + if let Some(x) = self { + if predicate(&x) { + return Some(x) } - None => None, } + None } /// Returns the option if it contains a value, otherwise returns `optb`. |
