Skip to content

Commit a572f0f

Browse files
Use blacklist instead of whitelist
1 parent bee13d6 commit a572f0f

File tree

1 file changed

+9
-14
lines changed
  • crates/cargo-platform/src

1 file changed

+9
-14
lines changed

crates/cargo-platform/src/cfg.rs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,12 @@ impl Cfg {
4545
pub(crate) fn validate_as_target(&self) -> Result<(), ParseErrorKind> {
4646
match self {
4747
Cfg::Name(name) => match name.as_str() {
48-
"unix" | "windows" => Ok(()),
49-
_ => Err(InvalidCfgName(name.to_string())),
48+
"test" | "debug_assertions" | "proc_macro" => Err(InvalidCfgName(name.to_string())),
49+
_ => Ok(()),
5050
},
5151
Cfg::KeyPair(name, _) => match name.as_str() {
52-
"target_arch"
53-
| "target_feature"
54-
| "target_os"
55-
| "target_family"
56-
| "target_env"
57-
| "target_endian"
58-
| "target_pointer_width"
59-
| "target_vendor" => Ok(()),
60-
_ => Err(InvalidCfgKey(name.to_string())),
52+
"feature" => Err(InvalidCfgKey(name.to_string())),
53+
_ => Ok(()),
6154
},
6255
}
6356
}
@@ -362,6 +355,7 @@ fn cfg_validate_as_target() {
362355
assert!(p("unix").validate_as_target().is_ok());
363356
assert!(p("windows").validate_as_target().is_ok());
364357
assert!(p("any(not(unix), windows)").validate_as_target().is_ok());
358+
assert!(p("foo").validate_as_target().is_ok());
365359

366360
assert!(p("target_arch = \"abc\"").validate_as_target().is_ok());
367361
assert!(p("target_feature = \"abc\"").validate_as_target().is_ok());
@@ -373,16 +367,17 @@ fn cfg_validate_as_target() {
373367
.validate_as_target()
374368
.is_ok());
375369
assert!(p("target_vendor = \"abc\"").validate_as_target().is_ok());
370+
assert!(p("bar = \"def\"").validate_as_target().is_ok());
376371

372+
assert!(p("test").validate_as_target().is_err());
377373
assert!(p("debug_assertions").validate_as_target().is_err());
378-
assert!(p("foo").validate_as_target().is_err());
374+
assert!(p("proc_macro").validate_as_target().is_err());
379375
assert!(p("any(not(debug_assertions), windows)")
380376
.validate_as_target()
381377
.is_err());
382378

383379
assert!(p("feature = \"abc\"").validate_as_target().is_err());
384-
assert!(p("bar = \"def\"").validate_as_target().is_err());
385-
assert!(p("any(not(feature = \"def\"))")
380+
assert!(p("any(not(feature = \"def\"), target_arch = \"abc\")")
386381
.validate_as_target()
387382
.is_err());
388383
}

0 commit comments

Comments
 (0)