File tree Expand file tree Collapse file tree 1 file changed +31
-1
lines changed Expand file tree Collapse file tree 1 file changed +31
-1
lines changed Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments