about summary refs log tree commit diff
diff options
context:
space:
mode:
authorleonardo.yvens <leoyvens@gmail.com>2017-09-13 12:19:37 -0300
committerleonardo.yvens <leoyvens@gmail.com>2017-09-13 12:19:37 -0300
commitc2fb70be6b73b74df2b7c82288e6f11b0f35b1bc (patch)
tree7486f6fc7279e0b64851253604885c1138ad6265
parentab30b6a6edac27b618240f05c0bdbcb39a999f8a (diff)
downloadrust-c2fb70be6b73b74df2b7c82288e6f11b0f35b1bc.tar.gz
rust-c2fb70be6b73b74df2b7c82288e6f11b0f35b1bc.zip
Refactor fn_trait_kind
Short and sweet
-rw-r--r--src/librustc/middle/lang_items.rs17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs
index 9a70d7b9e3f..086b598497d 100644
--- a/src/librustc/middle/lang_items.rs
+++ b/src/librustc/middle/lang_items.rs
@@ -78,19 +78,12 @@ impl LanguageItems {
     }
 
     pub fn fn_trait_kind(&self, id: DefId) -> Option<ty::ClosureKind> {
-        let def_id_kinds = [
-            (self.fn_trait(), ty::ClosureKind::Fn),
-            (self.fn_mut_trait(), ty::ClosureKind::FnMut),
-            (self.fn_once_trait(), ty::ClosureKind::FnOnce),
-            ];
-
-        for &(opt_def_id, kind) in &def_id_kinds {
-            if Some(id) == opt_def_id {
-                return Some(kind);
-            }
+        match Some(id) {
+            x if x == self.fn_trait() => Some(ty::ClosureKind::Fn),
+            x if x == self.fn_mut_trait() => Some(ty::ClosureKind::FnMut),
+            x if x == self.fn_once_trait() =>  Some(ty::ClosureKind::FnOnce),
+            _ => None
         }
-
-        None
     }
 
     $(