mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-03 15:15:24 +00:00
add support of feature flag for runnables #4464
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
This commit is contained in:
parent
a7c8aa7c60
commit
43339058e3
2 changed files with 9 additions and 21 deletions
|
@ -35,14 +35,11 @@ impl CfgExpr {
|
|||
}
|
||||
|
||||
/// Return minimal features needed
|
||||
pub fn minimal_features_needed(&self) -> Option<Vec<SmolStr>> {
|
||||
pub fn minimal_features_needed(&self) -> Vec<SmolStr> {
|
||||
let mut features = vec![];
|
||||
self.collect_minimal_features_needed(&mut features);
|
||||
if features.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(features)
|
||||
}
|
||||
|
||||
features
|
||||
}
|
||||
|
||||
fn collect_minimal_features_needed(&self, features: &mut Vec<SmolStr>) {
|
||||
|
@ -169,14 +166,14 @@ mod tests {
|
|||
let (subtree, _) = get_token_tree_generated(r#"#![cfg(feature = "baz")]"#);
|
||||
let cfg_expr = parse_cfg(&subtree);
|
||||
|
||||
assert_eq!(cfg_expr.minimal_features_needed().unwrap(), vec![SmolStr::new("baz")]);
|
||||
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().unwrap(),
|
||||
cfg_expr.minimal_features_needed(),
|
||||
vec![SmolStr::new("baz"), SmolStr::new("foo")]
|
||||
);
|
||||
|
||||
|
@ -184,11 +181,11 @@ mod tests {
|
|||
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().unwrap(), vec![SmolStr::new("baz")]);
|
||||
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_none());
|
||||
assert!(cfg_expr.minimal_features_needed().is_empty());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue