about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-08-22 18:37:28 +0200
committerMazdak Farrokhzad <twingoow@gmail.com>2019-08-23 01:39:59 +0200
commit1c979ad55256d065a6d035a01910726a16644223 (patch)
tree397c013cb2175ec390bd1d01b1bb733251da4a05
parent332a77e6212ccb96800c70d864a20aecce789136 (diff)
downloadrust-1c979ad55256d065a6d035a01910726a16644223.tar.gz
rust-1c979ad55256d065a6d035a01910726a16644223.zip
builtin_attrs.rs: simplify `cfg_fn`.
-rw-r--r--src/libsyntax/feature_gate/builtin_attrs.rs15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/libsyntax/feature_gate/builtin_attrs.rs b/src/libsyntax/feature_gate/builtin_attrs.rs
index 17e58df89e1..7cd295b1b2c 100644
--- a/src/libsyntax/feature_gate/builtin_attrs.rs
+++ b/src/libsyntax/feature_gate/builtin_attrs.rs
@@ -16,17 +16,16 @@ use syntax_pos::Span;
 use rustc_data_structures::fx::FxHashMap;
 use lazy_static::lazy_static;
 
+type GateFn = fn(&Features) -> bool;
+
 macro_rules! cfg_fn {
-    ($field: ident) => {{
-        fn f(features: &Features) -> bool {
-            features.$field
-        }
-        f as fn(&Features) -> bool
-    }}
+    ($field: ident) => {
+        (|features| { features.$field }) as GateFn
+    }
 }
 
-// cfg(...)'s that are feature gated
-const GATED_CFGS: &[(Symbol, Symbol, fn(&Features) -> bool)] = &[
+/// `cfg(...)`'s that are feature gated.
+const GATED_CFGS: &[(Symbol, Symbol, GateFn)] = &[
     // (name in cfg, feature, function to check if the feature is enabled)
     (sym::target_thread_local, sym::cfg_target_thread_local, cfg_fn!(cfg_target_thread_local)),
     (sym::target_has_atomic, sym::cfg_target_has_atomic, cfg_fn!(cfg_target_has_atomic)),