From 48d7c61e26398fa33b94e0e4bd0d2d1697ed4921 Mon Sep 17 00:00:00 2001 From: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> Date: Sat, 23 May 2020 20:59:18 +0200 Subject: add support of feature flag for runnables #4464 Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> --- crates/ra_cfg/src/cfg_expr.rs | 55 ------------------------------------------- 1 file changed, 55 deletions(-) (limited to 'crates/ra_cfg') diff --git a/crates/ra_cfg/src/cfg_expr.rs b/crates/ra_cfg/src/cfg_expr.rs index 98f44f56d..85b100c6a 100644 --- a/crates/ra_cfg/src/cfg_expr.rs +++ b/crates/ra_cfg/src/cfg_expr.rs @@ -33,33 +33,6 @@ impl CfgExpr { CfgExpr::Not(pred) => pred.fold(query).map(|s| !s), } } - - /// Return minimal features needed - pub fn minimal_features_needed(&self) -> Vec { - let mut features = vec![]; - self.collect_minimal_features_needed(&mut features); - - features - } - - fn collect_minimal_features_needed(&self, features: &mut Vec) { - match self { - CfgExpr::KeyValue { key, value } if key == "feature" => features.push(value.clone()), - CfgExpr::All(preds) => { - preds.iter().for_each(|cfg| cfg.collect_minimal_features_needed(features)); - } - CfgExpr::Any(preds) => { - for cfg in preds { - let len_features = features.len(); - cfg.collect_minimal_features_needed(features); - if len_features != features.len() { - break; - } - } - } - _ => {} - } - } } pub fn parse_cfg(tt: &Subtree) -> CfgExpr { @@ -160,32 +133,4 @@ mod tests { ]), ); } - - #[test] - fn test_cfg_expr_minimal_features_needed() { - let (subtree, _) = get_token_tree_generated(r#"#![cfg(feature = "baz")]"#); - let cfg_expr = parse_cfg(&subtree); - - assert_eq!(cfg_expr.minimal_features_needed(), vec![SmolStr::new("baz")]); - - let (subtree, _) = - get_token_tree_generated(r#"#![cfg(all(feature = "baz", feature = "foo"))]"#); - let cfg_expr = parse_cfg(&subtree); - - assert_eq!( - cfg_expr.minimal_features_needed(), - vec![SmolStr::new("baz"), SmolStr::new("foo")] - ); - - let (subtree, _) = - get_token_tree_generated(r#"#![cfg(any(feature = "baz", feature = "foo", unix))]"#); - let cfg_expr = parse_cfg(&subtree); - - assert_eq!(cfg_expr.minimal_features_needed(), vec![SmolStr::new("baz")]); - - let (subtree, _) = get_token_tree_generated(r#"#![cfg(foo)]"#); - let cfg_expr = parse_cfg(&subtree); - - assert!(cfg_expr.minimal_features_needed().is_empty()); - } } -- cgit v1.2.3