Skip to content

Commit 1bff554

Browse files
Nemo157syphar
authored andcommitted
Support either proc-macro or proc_macro keys
1 parent 23a717d commit 1bff554

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

crates/metadata/lib.rs

+31-1
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ impl std::str::FromStr for Metadata {
346346
let proc_macro = manifest
347347
.as_ref()
348348
.and_then(|t| table(t, "lib"))
349-
.and_then(|table| table.get("proc-macro"))
349+
.and_then(|table| table.get("proc-macro").or_else(|| table.get("proc_macro")))
350350
.and_then(|val| val.as_bool());
351351
if let Some(proc_macro) = proc_macro {
352352
metadata.proc_macro = proc_macro;
@@ -482,6 +482,36 @@ mod test_parsing {
482482
"#;
483483
let metadata = Metadata::from_str(manifest).unwrap();
484484
assert!(metadata.proc_macro);
485+
486+
let manifest = r#"
487+
[package]
488+
name = "x"
489+
[lib]
490+
proc_macro = true
491+
"#;
492+
let metadata = Metadata::from_str(manifest).unwrap();
493+
assert!(metadata.proc_macro);
494+
495+
// Cargo prioritizes `proc-macro` over `proc_macro` in local testing
496+
let manifest = r#"
497+
[package]
498+
name = "x"
499+
[lib]
500+
proc_macro = false
501+
proc-macro = true
502+
"#;
503+
let metadata = Metadata::from_str(manifest).unwrap();
504+
assert!(metadata.proc_macro);
505+
506+
let manifest = r#"
507+
[package]
508+
name = "x"
509+
[lib]
510+
proc-macro = false
511+
proc_macro = true
512+
"#;
513+
let metadata = Metadata::from_str(manifest).unwrap();
514+
assert!(!metadata.proc_macro);
485515
}
486516
}
487517

0 commit comments

Comments
 (0)