File tree 1 file changed +31
-1
lines changed
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 {
346
346
let proc_macro = manifest
347
347
. as_ref ( )
348
348
. 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" ) ) )
350
350
. and_then ( |val| val. as_bool ( ) ) ;
351
351
if let Some ( proc_macro) = proc_macro {
352
352
metadata. proc_macro = proc_macro;
@@ -482,6 +482,36 @@ mod test_parsing {
482
482
"# ;
483
483
let metadata = Metadata :: from_str ( manifest) . unwrap ( ) ;
484
484
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) ;
485
515
}
486
516
}
487
517
You can’t perform that action at this time.
0 commit comments