From: leonardo.yvens Date: Wed, 13 Sep 2017 15:19:37 +0000 (-0300) Subject: Refactor fn_trait_kind X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=c2fb70be6b73b74df2b7c82288e6f11b0f35b1bc;p=rust.git Refactor fn_trait_kind Short and sweet --- 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 @@ pub fn require(&self, it: LangItem) -> Result { } pub fn fn_trait_kind(&self, id: DefId) -> Option { - 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 } $(